2012-12-17 88 views
0

在我的jquery验证中,我在下面,如果发生多个验证错误,我希望所有验证一次出现在警报中,而不是它在更多的显示内容在警报中一次验证。如何在一个警报中显示所有消息?如何在一个警报中显示所有验证消息

function validation() { 

    var alertValidation = ""; 
    var _qid = ""; 
    var _msg = ""; 

    $("input[data-type='qmark']").each(function(i) { 
     var questions = $(this).attr("data-qnum"); 
     var marks = parseInt($("[class*=q" + i + "_ans_text]").text()); 
     var txtinput = $(this).val(); 
     _qid = questions; 
     _msg = "You have errors on Question Number: " + _qid + "\n"; 


     if (txtinput == '') { 
      alertValidation += "\n\u2022 You have not entered in a value in all the Indivdiaul Marks textbox\n"; 
     } 


     if (marks < '0') { 

      alertValidation += "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Need To Remove " + Math.abs(marks) + " Marks"; 
     } 

     if (marks > '0') { 

      alertValidation += "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Have " + marks + " Marks Remaining"; 
     } 

     if (alertValidation != "") { 
      return false; //Stop the each loop 
     } 

    }); 


    if (alertValidation != "") { 
     alert(_msg + alertValidation); 
     return false; 
    } 

    return true; 
}​ 
+0

concat所有alertValidation合并成一个,然后提醒那条消息 –

+0

@EricFrick是的,这是我遇到的问题,我如何连接消息? – user1881090

回答

0

删除的代码块

if (alertValidation != "") { 
    return false; //Stop the each loop 
} 

您已经连接了您的错误消息,上面的代码行在遇到错误时会打断您的循环。所以删除这应该可以解决你的问题..

+0

嗨,我想要做的是一次显示一个问题编号的提示,所以如果在问题1和3中存在错误,那么我希望它首先仅显示问题1的错误,然后当它被排序,如果用户再次验证,然后显示警告,显示问题3的错误。如果我删除此代码,它会一次显示所有问题中的错误,我只想一次显示一个问题的所有错误。这是否有道理? – user1881090

-1

每个警报验证,给它一个不同的名称:

if (txtinput == '') { 
    alertValidation1 += 'blah blah' 
} 
if (marks > '0') { 
    alertValidation2 += 'other stuff' 
} 

然后在最后的警告,这样做:

alert(alertValidation1 + '\n' + alertValidation2 + '\n' ...etc) 
相关问题