2012-02-05 64 views
0

下面是我的驗證()函數控制在警告一些消息:警報應該只出現畢竟錶行沒有錯誤

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下方條件中的警報消息纔會出現。如果任何表格行中存在錯誤,則不要在上面顯示警報,但是如果任何表格行中沒有錯誤,則在滿足顯示警報的條件時顯示上面的警報。那麼這怎麼做呢?

回答

1

您在_msg變量中設置了一些初始值,該變量在此條件下不適用,因此只需將其設置爲_msg = ''。也可以不使用+=,而是使用=作爲alertValidation消息,因爲它已經是空的。嘗試這個。

if(alertValidation == ''){ 
    _msg = ''; 
    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; 
} 
+0

等一下我誤解你的代碼,讓我再次測試了一下,給我5分鐘,我忘了放味精=「」 – user1182476 2012-02-05 02:21:56

+0

確定它擺脫了題號的消息,但我相信代碼是什麼這樣做的目的是希望用戶將總權重設置爲0,然後整理表格行錯誤。我想用其他方式,整理表格行錯誤,然後擔心總重量不等於0 – user1182476 2012-02-05 02:24:51

+0

檢查我編輯的答案。 – ShankarSangoli 2012-02-05 02:30:29