【问题标题】:Validation only works for first row and does not work for other rows! I feel it's because of the return true/false but I need that in my validation验证仅适用于第一行,不适用于其他行!我觉得这是因为返回真/假,但我需要在我的验证
【发布时间】:2021-08-14 11:01:56
【问题描述】:

HTML PHP

<td align="center"><input type="text" class="form-control" id="<?php echo $i;?>" name="r2<?php echo $i+1;?>" onblur="mvalidate2()" style="text-align: center; border: 1px solid #ccc;width: 46px;">
        <label id="errora<?php echo $i;?>" style="font-size:13px; color:#cc0000;margin-left: 5px;"><div style = "font-size:13px; color:#cc0000;"></div></label></td>  

//我得到一个错误 Uncaught TypeError: Cannot read property 'value' of null 在 mvalidate2

JAVASCRIPT

function mvalidate2(){
 var count = <?php echo $count2;?>;
  for(var i=0;i<count;i++){
    var sr = document.getElementById(i).value;
    var temp  = 'errora';
    var t = temp.concat(i);

    if(sr<5){
     document.getElementById(t).innerHTML=" ";
     return true;
     }
    else{
     document.getElementById(t).innerHTML=" Enter valid Rating out of 4 ";
     return false;
     }
   }
 } 

【问题讨论】:

  • 请收下tour并阅读How to Ask
  • 是的,当然这是因为您在循环内使用了 return - 这使得它在第一次循环迭代期间已经离开了您的整个函数。您需要找到一种方法来收集/累积所有验证结果,并且只在循环之后返回 true 或 false。 (布尔标志是一种简单的方法。)
  • Uncaught TypeError: Cannot read property 'value' of null 它现在这样说
  • 当您对问题进行编辑时,请正确格式化您的代码。 stackoverflow.com/editing-help#code

标签: javascript php html arrays validation


【解决方案1】:

您不必在 JavaScript 中以数字开头 ID

    var sr = document.getElementById("inp"+i).value;
&lt;input type="text" class="form-control" id="inp&lt;?php echo $i;?&gt;" name="r2&lt;?php echo $i+1;?&gt;" onblur="mvalidate2()" style="text-align: center; border: 1px solid #ccc;width: 46px;"&gt;

function mvalidate2(){
 var count = <?php echo $count2;?>;
  for(var i=0;i<count;i++){
    var temp  = 'errora';
    var t = temp.concat(i);

    if(sr<5){
     document.getElementById(t).innerHTML=" ";
     return true;
     }
    else{
     document.getElementById(t).innerHTML=" Enter valid Rating out of 4 ";
     return false;
     }
   }
 } 

【讨论】:

  • 谢谢,但这仅适用于第一行,验证不适用于其余部分。
猜你喜欢
  • 1970-01-01
  • 2014-10-10
  • 2021-08-08
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-23
相关资源
最近更新 更多