0

次の HTML コードを使用してテーブルを表示しています。

<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" 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"></td>
    <td class="answermarkstd">
    <input class="individualMarks q1_mark_0"  q_group="1" name="answerMarks[]" id="individualtext" type="text" />
    </td>
    </tr>

    <tr class="questiontd">
    <td class="answermarkstd">
    <input class="individualMarks q1_mark_0"  q_group="1" name="answerMarks[]" id="individualtext" type="text" />
    </td>
    </tr>

    <tr class="questiontd">
    <td class="questionnumtd" 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"></td>
    <td class="answermarkstd">
    <input class="individualMarks q2_mark_0"  q_group="1" name="answerMarks[]" id="individualtext" type="text" />
    </td>
    </tr>
    </tbody>
    </table>

以下は、テーブルの外観です。

Question No.     Marks Per Answer         
    1            (blank text input)       
                 (blank text input)
    2            (blank text input)       

ご覧のとおり、質問 1 には 2 つのテキスト入力が含まれ、質問 2 には 1 つのテキスト入力が含まれています。

以下のコードでやりたいことは、空のテキスト入力を検証することです。

function validation() {

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

    $("[class*='q']").each(function(i) {  
    var questions = parseInt($("[class*=q" + i + "_qnum]").text());
    var marks = parseInt($("[class*=q" + i + "_ans_text]").text()); 
    var txtinput = $("[class*=q" + i + "_mark]").val(); 
    _qid = questions;
    _msg = "You have errors on Question Number: " + _qid + "\n";


if (txtinput == '' || txtinput == null) {
    alertValidation += "\n\u2022 You have not entered in a value for all the Indivdiaul Marks textbox\n";
}    

            if (alertValidation != "") {
                return false; //Stop the each loop 
            }

        });


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

    return true;
}

問題は、アラートに質問番号_qidが NaN として表示されず、テキスト入力が空白でなくても、すべての入力に値が含まれていないことを示すアラートが表示されることです。

私の質問は、質問番号を表示する方法と、空のテキスト入力が正しいかどうかを適切に確認する方法です。テキスト入力が空の場合、正しい質問番号でアラートが表示され、すべてのテキスト入力に値が含まれている場合は、検証が表示されませんか?

空のテキスト入力をチェックするifステートメントのすぐ下に配置され_qidた関数に別の検証チェック用に以下のコードを含めると、うまくいくと言いたいです。validation()

if(marks < '0')
{

 alertValidation = "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Need To Remove " + Math.abs(marks) +  " Marks";   
}

        else if(marks > '0')
{

 alertValidation = "Your Total Marks Remaining does not equal 0 \n\n\u2022 You Have " + marks +  " Marks Remaining";   
}

上記の検証でアラートが表示されると、アラートに質問番号が表示されます。空のテキスト入力を検証しても表示されないのですか? 質問内に複数のテキスト入力がある可能性があるため、空のテキスト入力のコードに別の foreach() ループを含める必要があるかもしれませんか?

完全なValidation()コードは次のようになります。

function validation() {

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

    $("[class*='q']").each(function(i) {  
    var questions = parseInt($("[class*=q" + i + "_qnum]").text());
    var marks = parseInt($("[class*=q" + i + "_ans_text]").text()); 
    var txtinput = $("[class*=q" + i + "_mark]").val(); 
    _qid = questions;
    _msg = "You have errors on Question Number: " + _qid + "\n";


if (txtinput == '' || txtinput == null) {
    alertValidation += "\n\u2022 You have not entered in a value for 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";   
}

        else 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 より高い検証:

You have errors on Question Number: 1
Your Total Marks Remaining does not equal 0 

• You Have NaN Marks Remaining

マーク 0 未満の検証:

You have errors on Question Number: 2
Your Total Marks Remaining does not equal 0 

• You Need To Remove NaN Marks

空のテキスト入力の検証:

You have errors on Question Number: NaN

• You have not entered in a value for all the Indivdiaul Marks textbox

上記のアラートを見るとわかるように、質問番号が表示されないのはアラートだけです

ありがとう

4

0 に答える 0