复选框循环上的JavaScript警报

时间:2016-01-28 06:08:18

标签: javascript php jquery checkbox

我的代码中存在问题。

我想编写一个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>

我希望选中所有来自循环回显的复选框,然后将其转到下一页。如果未选中任何复选框,则会显示警告消息

  

问题:   如果我没有检查任何人复选框它继续,我希望它不会继续,如果没有选中任何复选框

1 个答案:

答案 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>