【问题标题】:Only JavaScript Dynamic Array Field Validation仅 JavaScript 动态数组字段验证
【发布时间】:2014-04-28 10:27:19
【问题描述】:

我觉得for语句有问题??

再次调整代码,但即使所有输入字段都有值,也不会一直弹出警报?

您好,我正在尝试验证表单上的动态字段数组:

<form onsubmit="return checkReq();">
    <input value="" type="hidden" name="slider[]" id=""/>
</form>

使用以下 JavaScript,但它不起作用?你能告诉我我做错了什么吗?

    <script language="javascript">
    function checkReq () {
        var boxes = document.getElementsByName("slider[]");
    var ret = true;
    for (var x = 0; x < boxes.length; x++) {

        if(boxes[x].value == '' || '0'){
            ret = false;
            break;
            } else {ret = true;} 

         }
   if (ret == false)
   {
     alert('Problem'); return ret;        
   }
}
    </script>

【问题讨论】:

    标签: javascript forms validation input


    【解决方案1】:

    我认为这可能会有所帮助。

    function checkReq () {
         var boxes = document.getElementsByName("slider[]");
    var ret = true;
    for (var x = 0; x < boxes.length; x++) {       
        if(boxes[x].value == '' || boxes[x].value == '0'){
            ret = false;
            break;
            } else {ret = true;} 
    
         }    
       if (ret == false)
       {
         alert('Problem'); return ret;        
       }
    }
    

    【讨论】:

    • 现在警报一直处于开启状态,即使所有字段都有价值?奇怪
    【解决方案2】:

    你总是在第一个循环之后返回,所以它不会遍历每个元素(因此是多余的),这是故意的吗?

    【讨论】:

      【解决方案3】:

      试试这个 您正在尝试比较元素而不是它的值 JSFIDDLE

      function checkReq () {
          var boxes = document.getElementsByName("slider[]");
      
          for (var x = 0; x < boxes.length; x++) {
      
             if(boxes[x].value == '' || boxes[x].value == '0'){
      
                  alert('Problem'); return false;
      
               } 
               else {return true;} 
          }
      }
      

      【讨论】:

      • @FenixDolores 按下提交按钮
      猜你喜欢
      • 2011-09-19
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 2018-12-14
      • 1970-01-01
      • 2018-06-10
      相关资源
      最近更新 更多