2012-12-17 119 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) 
相關問題