我想将以下内容放入for循环中,但我遇到了困难。任何帮助将不胜感激
$("input:submit").click(function(){
if (!$("input[name=attendance1]").is(":checked")) {
alert('Please select preference');
return false;
}
else if (!$("input[name=attendance2]").is(":checked")) {
alert('Please select preference');
return false;
}
else if (!$("input[name=attendance3]").is(":checked")) {
alert('Please select preference');
return false;
}
});
});
我试过了:
for($i=1; $i<=3; $i++)
{
$("input:submit").click(function(){
if (!$("#food" + $i).is(":checked")) {
alert('Please select preference');
return false;
}
});
});
答案 0 :(得分:2)
首先修复:
alert('Please select preference);
与
alert('Please select preference');
然后如果你想循环:
for (var i = 0; i < 3; i++) {
if (!$("input[name=attendance" + i + "]").is(":checked")) {
alert('Please select preference');
return false;
}
}
<小时/> 或者更好的是使用jQuery的startsWith选择器:
if (!$('input[name^="attendance"]').is(":checked")) {
alert('Please select preference');
return false;
}
答案 1 :(得分:0)
你错过了所有3个警告声明的结束单引号。
答案 2 :(得分:0)
这是我的看法。它的优点是可以在数组中列出要检查的名称,无论它们是什么名称
//jQuery '.on()' for versions 1.7+
$("input:submit").on('click', function() {
//assume valid unless found otherwise
var valid = true;
//add the input names you want to verify
var nameList = [
'attendance1',
'attendance2',
'attendance3'
];
//loop through names
for (var i = 0; i < nameList.length; i++) {
var checked = $('input[name="'+nameList[i]+'"]').is(':checked');
if (!checked) {
alert('Please select a preference');
//mark false when something wrong found
valid = false;
}
}
//check if validity persisted
if(valid){
//do something
}
//prevent default actions
return false;
});
答案 3 :(得分:0)
当我想做这样的事情时,我通常在我的DOM元素上使用类名。这使得使用.each()更容易迭代元素。我不知道上面提到的startsWith选择器,但它看起来比我的方法更清晰。
<!-- DO STUFF -->
<input name="attendance1" class="my-unique-class-name" />
<input name="attendance2" class="my-unique-class-name" />
<input name="attendance3" class="my-unique-class-name" />
<!-- DO STUFF -->
<script type="text/javascript">
$("input:submit").click(function(){
var valid = true;
$("input.my-unique-class-name").each(function (el) {
if ( ! $(el).is(":checked") ) {
valid = false;
}
});
if ( ! valid ) {
alert('Please select preference');
return false;
}
});
</script>