【问题标题】:Dynmaic checkboxs validation动态复选框验证
【发布时间】:2011-06-29 00:00:52
【问题描述】:

我想在 javascript 中验证 Checkbox,复选框是由 PHP 动态生成的,并且复选框的名称类似于 "checkbox1" 、 "checkbox2" 、 "checkbox3" 即递增 i++ 并且这些数字来自数据库,这可能是第一次只取了 2 行,下次取 112 行。

我如何确保在 javascript 中必须选择至少一个复选框。

【问题讨论】:

  • 您可以进行 javascript 验证,但如果有人没有启用 javascript,那么他们将绕过该验证。确保您也使用 php 进行验证。

标签: php javascript


【解决方案1】:
// When you use jQuery... somehow like this
$('form').submit(function() {
    if ($("input:checked").length == 0) {
        alert('Please check at least one checkbox!');
        return false;
    }
});

【讨论】:

    【解决方案2】:

    如果你不想使用任何 js 框架,那么只需给复选框赋予相同的name 属性

    假设你的复选框被命名为test

    var chkBoxes = document.getElementsByName("test");
      var chked=0;
      for(var i=0;i<chkBoxes.length;i++)
      {
        if(chkBoxes[i].checked)
            chked++;
      }
      if(chked===0)
         alert("Please select a value");
    

    根据注释中指定的示例代码添加

    function isChecked()
    {
      var i=1; 
      var chkd=0;
      var elem = "";
      var chkForMoreChkBoxes=true;
      do{
            elem=document.getElementById("check_"+i);
            try{
                if(elem.checked)
                {
                    chkd++;
                }
                i++;
            }
            catch(err)
            {
                chkForMoreChkBoxes=false;
            }
      }while(chkForMoreChkBoxes)
      if(chkd===0)
      {
        alert("Please select a value");
        return false;
      }
    
    }
    

    【讨论】:

    • 这里的问题是复选框名称是动态的,由 PHP 代码创建,即通过循环和框检查名称总是像 checkbox20、checkbox21 等,所以在这里我不能使用你建议的代码。
    • 代码示例 - ,例如,如果我们有最多 100 个复选框,以及我们如何动态识别选中的复选框。
    • @Shatru : 按照示例更新代码。请检查并恢复是否有效
    猜你喜欢
    • 1970-01-01
    • 2017-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-10
    • 2015-08-29
    • 1970-01-01
    相关资源
    最近更新 更多