2012-12-06 72 views
4

我這裏有http://jsfiddle.net/cbyJD/76驗證對所有空文本輸入檢查工作不

一個的jsfiddle正如你可以在小提琴看到有2個問題,但在問題1它包含多個文本輸入,而問題2只包含一個文本輸入。現在我試圖驗證任何空的文本輸入,但問題是,如果在問題1中的第一個文本輸入中,我填寫一個值並將其他值留空,當我單擊提交按鈕時,如同其他文本輸入問題1是空的,它應該顯示一個問題,說明問題1中存在錯誤,表明存在空的文本輸入。那麼它不會這樣做,而是直接顯示問題2的提示,指出在該問題中存在空白輸入。

所以看起來像我的問題是,如果一個問題有多個輸入,如果一個o這些輸入被填充,那麼它似乎認爲它很好,並且在該問題中沒有空的文本輸入錯誤。這顯然是不正確的,因爲問題中的每個輸入都必須填寫,而不是一個文本輸入可以留空。

小提琴如何更新以解決這個問題?

jQuery驗證()函數是在這裏:

function validation() { 

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

    $("[class*='q']").each(function(i) { 
    var questions = parseInt($("[class*=q" + i + "_qnum]").text()); 
    var txtinput = $("[class*=q" + i + "_mark]").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 (alertValidation != "") { 
       return false; //Stop the each loop 
      } 

     }); 


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

    return true; 
} 

下面是HTML代碼:

<form id="Marks" action="" method="post"> 
<table border='1' id='markstbl'> 
    <thead> 
    <tr> 
    <th class='questionth'>Question No.</th> 
    <th class='answermarksth'>Marks per Answer</th> 
    </tr> 
    </thead> 
    <tbody> 

    <tr class="questiontd"> 
     <td class="questionnumtd q1_qnum" name="numQuestion" rowspan="2">1 <input type="hidden" name="q1_ans_org" class="q1_ans_org" value="5"><input type="hidden" name="q1_ans" class="q1_ans" value="5"></td> 

<td class="answermarkstd"> 
<input class="individualMarks q1_mark" q_group="1" name="answerMarks[]" type="text" onkeypress="return isNumberKey(event)" maxlength="3" /> 
</td> 
</tr> 

<tr class="questiontd"> 
<td class="answermarkstd"> 
<input class="individualMarks q1_mark" q_group="1" name="answerMarks[]" type="text" onkeypress="return isNumberKey(event)" maxlength="3" /> 
</td> 
</tr> 

<tr class="questiontd"> 
     <td class="questionnumtd q2_qnum" name="numQuestion" rowspan="1">2 <input type="hidden" name="q2_ans_org" class="q2_ans_org" value="5"><input type="hidden" name="q2_ans" class="q2_ans" value="5"></td> 
<td class="answermarkstd"> 
<input class="individualMarks q2_mark" q_group="1" name="answerMarks[]" type="text" onkeypress="return isNumberKey(event)" maxlength="3" /> 
</td> 
</tr> </tbody> 
</table> 

<p><input id="submitBtn" name="submitMarks" type="submit" value="Submit Marks" /></p> 

</form> 

表看起來是這樣的:

Question No. Marks per Answer 
1    (blank text input) 
       (blank text input) 
2    (blank text input) 
+0

我回答你的問題。看小提琴。我個人覺得你的代碼結構不好。無論如何,我修復了你提到的問題。 – user10

回答

1

我更新您的提琴。

看到this

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