【问题标题】:JavaScript Alert on Check-box Loop复选框循环上的 JavaScript 警报
【发布时间】:2016-01-28 06:08:17
【问题描述】:

我的代码有问题。

我想在未选中复选框时编写java警报代码。

我有一个复选框循环

这里是代码

 <?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>

我希望所有从循环回显的复选框都被选中,然后继续到下一页。如果未选中任何复选框,则会显示警告消息

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

【问题讨论】:

  • “您遇到的问题”究竟是什么?
  • @NSNoob 我用问题更新了我的问题
  • 很好,但是我可以建议将其改写为更清晰吗? “目前,如果我没有选中一个复选框,它会继续进行。如果任何复选框未选中,我想阻止它。”

标签: javascript php jquery checkbox


【解决方案1】:
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>

【讨论】:

  • 哪一个?在哪里?如何?有错误信息吗?你不想做什么,或者你不做什么? “它不工作”是最无益的评论。
  • @Amadan : for 循环 for( ; i &lt; pr.length; i++ )
  • @Amadan 我面临同样的问题如果我没有选中复选框,它会继续进行。如果未选中任何复选框,我想阻止它
  • 它有效。您在复制粘贴时弄乱了代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-01
  • 2017-02-06
  • 2022-01-11
  • 2019-04-28
  • 1970-01-01
  • 2017-09-14
  • 2013-06-26
相关资源
最近更新 更多