4

ここに jsfiddle がありますhttp://jsfiddle.net/cbyJD/76

フィドルでわかるように、2 つの質問がありますが、質問 1 には複数のテキスト入力が含まれていますが、質問 2 には 1 つのテキスト入力しか含まれていません。今、空のテキスト入力を検証しようとしていますが、問題は、質問1の最初のテキスト入力で値を入力し、送信ボタンをクリックしたときに他のテキスト入力が質問 1 が空の場合、質問 1 に空のテキスト入力があるというエラーがあることを示す警告が表示されます。代わりに、質問 2 のアラートを表示して、その質問に空白の入力があることを示します。

したがって、私の問題は、質問に複数の入力がある場合、それらの入力のいずれかが入力されている場合、それは問題なく、その質問に空のテキスト入力エラーがないと考えているようです。質問のすべての入力を入力する必要があり、1 つのテキスト入力を空白のままにすることはできないため、これは明らかに正しくありません。

この問題を解決するためにフィドルを更新するにはどうすればよいですか?

Jquery validation() 関数は次のとおりです。

  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)
4

1 に答える 1

1

私はあなたのフィドルを更新します。

これを見る

$("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";
于 2012-12-06T14:05:56.517 に答える