我的代码中存在问题。
我想编写一个java alert代码,而不选中复选框。
我有一个复选框循环
这是代码
<?php
for ($i=0; $i<count($chk); $i++) {
echo "<input type='checkbox' name='pr' value=''/>".$chk[$i];
echo "</br>";
}
?>
这是JavaScript
<script>
var tags = document.getElementsByName('pr'),
value = '', i = 0;
for( ; i < pr.length; i++ )
{
if( pr[i].checked=='' ) {
alert("Please Check All Checkboxes");
}
}
</script>
我希望选中所有来自循环回显的复选框,然后将其转到下一页。如果未选中任何复选框,则会显示警告消息
问题: 如果我没有检查任何人复选框它继续,我希望它不会继续,如果没有选中任何复选框
答案 0 :(得分:2)
var allAreChecked = true;
for( ; i < pr.length; i++ )
{
if( pr[i].checked=='' ) {
allAreChecked = false;
}
}
if (!allAreChecked) {
alert("Please Check All Checkboxes");
}
或者,
var allAreChecked = true;
for( ; i < pr.length; i++ )
{
if( pr[i].checked=='' ) {
alert("Please Check All Checkboxes");
break;
}
}
或者,更简洁,更清晰:
function checked(element) {
return element.prop('checked');
}
if (!Array.prototype.every(tags, checked)) {
alert("Please Check All Checkboxes");
}
编辑:证明它有效:
document.getElementById('test').addEventListener('click', function() {
var pr = document.getElementsByName('pr'),
i = 0;
var allAreChecked = true;
for( ; i < pr.length; i++ )
{
if( pr[i].checked=='' ) {
allAreChecked = false;
}
}
if (!allAreChecked) {
alert("Please Check All Checkboxes");
} else {
alert("All OK");
}
});
<input type='checkbox' name='pr' value=''/>
<input type='checkbox' name='pr' value=''/>
<input type='checkbox' name='pr' value=''/>
<button id="test">Test</button>