二维数组名称选择器的事件不会触发



这行不通:

<input type="text" name="start_time[0][0]" value="00">
<input type="text" name="start_time[0][1]" value="01">
<input type="text" name="start_time[1][0]" value="10">
<input type="text" name="start_time[1][1]" value="11">
$("form[name='fare-form'] input[name='start_time[][]'").click(function() {
console.log($(this).val());
});

如果我指定数组索引,它将起作用。我假设使用我在其他地方使用过的一维数组作品。

为什么它不起作用?

我了解到它必须完全匹配。因此,在我做一维数组的情况下,例如:

<input type="text" name="start_time[]" value="1">
<input type="text" name="start_time[]" value="2">
$("form[name='fare-form'] input[name='start_time[]'").click(function() {
console.log($(this).val());
});

这是有效的,因为 Javascript 或其他任何东西会自动创建两个索引的数组,但 start_time[] 在事件中的引用将指向数组的两个元素?

当你使用[name=...]时,名称必须完全匹配,它不做任何类型的模式匹配。start_time[][]与表单中的start_time[0][0]或任何其他名称不完全匹配。

您可以使用input[name^=start_time]匹配以start_time开头的任何名称。

请参阅 jQuery 属性选择器,了解在 jQuery 选择器中匹配属性的所有不同方法。没有任何形式可以完成您尝试执行的模式匹配。

最新更新