我正在尝试在一系列复选框中检索值:
$(document).ready(function() {
var folders = document.getElementsByName('note-behaviour-folder-add[]');
for(var x = 0; x < folders.length; x++){
if ((folders[x].type === "checkbox") && (folders[x].checked)) {
alert("Yes!");
}
}
});
虽然命名元素中有数据,但上面的代码似乎没有检索到任何数据。我也尝试过jQuery替代方案:
var folders = $("[name='note-behaviour-folder-add[]']");
但是这很疯狂,抓住了应用程序中的所有内容。
至于HTML本身:
<div class="note-behaviour-folder-box" id="note-behaviour-folder-box-2">
<input type="checkbox" id="note-behaviour-folder-item-2" name="note-behaviour-folder-add[2]" value="2" checked="checked">Plot
<dl>
<dt><label for="note-behaviour-folder-item-select-2">Behaviours</label></dt>
<dd><select name="note-behaviour-folder-item-select-2" class="chzn-select">
<option value="1">List</option>
<option value="2">Paragraph</option>
<option value="3" selected="selected">Chapter</option>
</select></dd>
</dl>
</div>
有什么想法吗?
答案 0 :(得分:3)
因为您正在使用:
<input ... name="note-behaviour-folder-add[2]" value="2" checked="checked">Plot
^-----
然后:
var folders = $("[name='note-behaviour-folder-add[]']");
不行。使用:
var folders = $("[name^='note-behaviour-folder-add']");
^---- ^---- notice the differences
这称为Attribute Starts With Selector [name^="value"]
。
这将为您<input name="note-behaviour-folder-add[1]" ...>
,<input name="note-behaviour-folder-add[3]" ...>
以及name
以note-behaviour-folder-add
开头的所有内容。