下面是我的驗證()函數控制在警告一些消息:警報應該只出現畢竟錶行沒有錯誤
function validation() {
var marks = parseInt($("#total-weight").text());
var _qid = "";
var _msg = "";
var alertValidation = "";
// Note, this is just so it's declared...
$("tr.optionAndAnswer").each(function() {
_qid = $("td.qid",this).text();
_msg = "You have errors on Question Number: " + _qid + "\n";
$(".txtWeightRow",this).each(function() {
if (!this.value) {
alertValidation += "\n\u2022 Please enter in a figure for Number of Marks for this Question\n";
}
if (alertValidation != "") {
return false; //Stop the each loop
}
});
if(alertValidation != ""){
return false;
}
});
// SPLIT
if($("#total-weight").text() < '0')
{
alertValidation += "Your Total Session Marks Remaining does not equal 0 \n\n\u2022 You Need To Remove " + Math.abs(marks) + " Marks";
}
else if($("#total-weight").text() > '0')
{
alertValidation += "Your Total Session Marks Remaining does not equal 0 \n\n\u2022 You Have " + marks + " Marks Remaining";
}
if (alertValidation != "") {
alert(_msg + alertValidation);
return false;
}
return true;
}
我已經包括了一個//在功能中分配註釋。我之所以這樣做是因爲如果你看看$(「.txtWeightRow」,this).each(function(){,它進入一個表格行,因此它有一個問號(表格行號)附加到但是在分割下面,您會看到if和else if語句,但這些語句不處理表格行中的任何內容,因此它不應該在警報中附加問題編號(表格行編號)
現在讓我們說了eaxmple如果你看看下面的// SPLIT的條件,即總共#體重> 0,則顯示低於此警報:因爲它不是在錶行
You have errors on Question Number: 1
Your Total Session Marks Remaining does not equal 0
• You Have 5 Marks Remaining
以上是不正確所以它不應該顯示問題編號,而是應該顯示這個提示:
Your Total Session Marks Remaining does not equal 0
• You Have 5 Marks Remaining
爲什麼它顯示問題編號以及如何從警報中刪除「您在問題編號上有錯誤:1」?
此外,只有在所有表格行中沒有錯誤後,// SPLIT下方條件中的警報消息纔會出現。如果任何表格行中存在錯誤,則不要在上面顯示警報,但是如果任何表格行中沒有錯誤,則在滿足顯示警報的條件時顯示上面的警報。那麼這怎麼做呢?
等一下我誤解你的代碼,讓我再次測試了一下,給我5分鐘,我忘了放味精=「」 – user1182476 2012-02-05 02:21:56
確定它擺脫了題號的消息,但我相信代碼是什麼這樣做的目的是希望用戶將總權重設置爲0,然後整理表格行錯誤。我想用其他方式,整理表格行錯誤,然後擔心總重量不等於0 – user1182476 2012-02-05 02:24:51
檢查我編輯的答案。 – ShankarSangoli 2012-02-05 02:30:29