0

我有以下代码...一旦达到数组的末尾,我该如何执行一个函数?

var min_val = [{"id":"driverDOA","value":date_of_accident},etc etc...];//put validation elements in an array 

     for (var i=0;i<min_val.length;i++)//loop through each element if array 
     { 
      var object = min_val[i]; 
      if(object.value == "" || object.value == null)//if element is null or empty then execute code 
       { 
        document.getElementById(object.id).parentNode.innerHTML += '<div class="prompt accident">*</div>'; 
        document.getElementById('accident-tab').innerHTML += '<div class="prompt accident">*</div>'; 
        return false; 
       } 
      else 
       { 
        $('.prompt accident').remove(); 
              sendAjaxRequest(); 
       } 
     } 

基本上,我被存储在数组所需的元素验证的形式。然后我遍历数组并检查是否有空值。如果用户留下了一个值,那么在该元素旁边和该部分的选项卡上会显示一个星号。

一旦用户填写了所有标记的表单元素,代码将删除星号并发送Ajax请求。

但是,此刻一旦找到一个空的元素,它会显示星号并停止。

我需要的是它每次循环遍历整个数组并显示所有星号。我有一种感觉,这将是非常简单的,但一直无法找到任何东西或弄明白。

任何帮助,将不胜感激

回答

2
var hasError=false; 
for (var i=0;i<min_val.length;i++)//loop through each element if array 
     { 
      var object = min_val[i]; 
      if(object.value == "" || object.value == null)//if element is null or empty then execute code 
       { 
        document.getElementById(object.id).parentNode.innerHTML += '<div class="prompt accident">*</div>'; 
        document.getElementById('accident-tab').innerHTML += '<div class="prompt accident">*</div>'; 
        hasError= true; 
        //return false; // remove this... 
       } else $('.prompt accident').remove(); 
     } 
    if(!hasError) { 
     sendAjaxRequest(); 
    } 
+0

完美:)我认为这将是简单的事情,谢谢 – jampez77

+0

不客气。如果你接受它会更完美:)... – Zafer

+0

我可以在4分钟内接受答案,显然 – jampez77

0

不要return false。只需continue

编辑:一个更好的解决办法是:

var min_val = [{"id":"driverDOA","value":date_of_accident},etc etc...];//put validation elements in an array 
     var valid = true; // I MADE A CHANGE HERE 
     for (var i=0;i<min_val.length;i++)//loop through each element if array 
     { 
      var object = min_val[i]; 
      if(object.value == "" || object.value == null)//if element is null or empty then execute code 
       { 
        document.getElementById(object.id).parentNode.innerHTML += '<div class="prompt accident">*</div>'; 
        document.getElementById('accident-tab').innerHTML += '<div class="prompt accident">*</div>'; 
        valid = false; // AND HERE 
       } 
      else 
       { 
        $('.prompt accident').remove(); 
              sendAjaxRequest(); 
       } 
     } 
     return valid; // AND HERE 
1

这里

更改返回false,noerror=false,在循环之前添加var noerror=true并与return noerror

结束功能

这样的

var noerror=false, min_val = [{"id":"driverDOA","value":date_of_accident},etc etc...];//put validation elements in an array 
$('.prompt accident').remove(); // reset 
for (var i=0;i<min_val.length;i++) { //loop through each element if array 
    var object = min_val[i]; 
    if(object.value == "" || object.value == null) { //if element is null or empty then execute code 
    document.getElementById(object.id).parentNode.innerHTML += '<div class="prompt accident">*</div>'; 
    document.getElementById('accident-tab').innerHTML += '<div class="prompt accident">*</div>'; 
    noerror=false; 
    } 
} 
if (noerror) {    
    sendAjaxRequest(); 
} 
return noerror; 
} 
相关问题