动态生成的名称字段的单选按钮组验证
Radio button group validation of dynamically generated name fields
代码:
html
<form id="myform" type="post">
<fieldset id="myid1">
<input id="entries_8490_burn_id_1" name="entries[8490][burn_id]" value="1" type="radio"/>
<input id="entries_8490_burn_id_2" name="entries[8490][burn_id]" value="2" type="radio"/>
<input id="entries_8490_burn_id_3" name="entries[8490][burn_id]" value="3" type="radio"/>
</fieldset>
<fieldset id="myid2">
<input id="entries_8491_burn_id_1" name="entries[8491][burn_id]" value="1" type="radio"/>
<input id="entries_8491_burn_id_2" name="entries[8491][burn_id]" value="2" type="radio"/>
<input id="entries_8491_burn_id_3" name="entries[8491][burn_id]" value="3" type="radio"/>
</fieldset>
<input type="submit" />
</form>
JS/jquery
$( document ).ready(function() {
$('#myform').on('submit', function(e) {
e.preventDefault();
$("fieldset[id^='myid']").each(function () {
myid = this.id
alert(myid)
alert($(myid +" > input[name^='entries']").is(":checked"));
});
});
});
fiddle: http://jsfiddle.net/woav90mz
问题:
当我选中其中一个组中的单选按钮时,我仍然得到 "false false"。不知何故组没有选择正确!
谁能发现我的错误?
您缺少一个 #
-> Updated fiddle
alert($("#" + myid + " > input[name^='entries']").is(":checked"));
此外,如果您只是想确保选中每个组中的单选按钮,您可以简单地执行以下操作:
$("fieldset[id^='myid']").find(" > input[name^='entries']:checked").length;
代码:
html
<form id="myform" type="post">
<fieldset id="myid1">
<input id="entries_8490_burn_id_1" name="entries[8490][burn_id]" value="1" type="radio"/>
<input id="entries_8490_burn_id_2" name="entries[8490][burn_id]" value="2" type="radio"/>
<input id="entries_8490_burn_id_3" name="entries[8490][burn_id]" value="3" type="radio"/>
</fieldset>
<fieldset id="myid2">
<input id="entries_8491_burn_id_1" name="entries[8491][burn_id]" value="1" type="radio"/>
<input id="entries_8491_burn_id_2" name="entries[8491][burn_id]" value="2" type="radio"/>
<input id="entries_8491_burn_id_3" name="entries[8491][burn_id]" value="3" type="radio"/>
</fieldset>
<input type="submit" />
</form>
JS/jquery
$( document ).ready(function() {
$('#myform').on('submit', function(e) {
e.preventDefault();
$("fieldset[id^='myid']").each(function () {
myid = this.id
alert(myid)
alert($(myid +" > input[name^='entries']").is(":checked"));
});
});
});
fiddle: http://jsfiddle.net/woav90mz
问题:
当我选中其中一个组中的单选按钮时,我仍然得到 "false false"。不知何故组没有选择正确! 谁能发现我的错误?
您缺少一个 #
-> Updated fiddle
alert($("#" + myid + " > input[name^='entries']").is(":checked"));
此外,如果您只是想确保选中每个组中的单选按钮,您可以简单地执行以下操作:
$("fieldset[id^='myid']").find(" > input[name^='entries']:checked").length;