如何写这个if语句?

时间:2012-02-05 23:20:44

标签: jquery

我有一个申请here

当您打开应用程序时,请继续单击“添加问题”按钮,您将意识到它不会让您添加超过5个表行。这是因为这里的代码:

    if (qnum > 5) {
    return;
}

这行代码进入下面的函数,该函数控制添加表行:

var qnum = 1;

function insertQuestion(form) {   


    if (qnum > 5) {
    return;
}


    var $tbody = $('#qandatbl > tbody'); 
    var $tr = $("<tr class='optionAndAnswer' align='center'></tr>");
    var $qid = $("<td class='qid'>" + qnum + "</td>");


    $tr.append($qid);
    $tbody.append($tr); 


    $(form).find('.numberOfQuestions').val(qnum);

    ++qnum;
    $("#questionNum").text(qnum);
    form.questionText.value = "";


}

这里添加的行进入此表:

<table id="qandatbl" align="center">
<thead>
<tr>
    <th class="qid">Question No</th>
</tr>
</thead>
<tbody></tbody>
</table>

我的问题是我要创建一个名为validation()函数的新函数,这将创建警报。我的问题是如何编写if语句来说明如果最后一个问题编号不在表格行中,则显示在警告“你还没有添加所有问题\ n你还有问题”。如何编写if语句?

以下是当前验证()函数:

function validation() {

    var marks = parseInt($("#total-weight").text());    
    var _qid = "";
    var _msg = "";

    var maxQuestions = <?php echo (int)@$_POST['textQuestion']; ?>;
    var questionsAdded = $('tr.optionAndAnswer').length;


    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";

        $(".textAreaQuestion",this).each(function() {



            if (!this.value || this.value.length < 5) {
                alertValidation += "\n\u2022 You have not entered a valid Question\n";
            }

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

        $(".numberAnswerTxtRow",this).each(function() {


            var currenttotal = $(this).closest('.optionAndAnswer').find('.answerBtnsOn').length;

            if (!this.value) {
                alertValidation += "\n\u2022 Please Enter in the Number of Answers you Require for this question\n";
            }

            else if (currenttotal > $(this).val()){
                alertValidation += "\n\u2022You have selected more answers than the required amount\n";
    }

            else if (currenttotal < $(this).val()) {
                alertValidation += "\n\u2022 You have selected less answers than the required amount\n";
    }

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

        });

        $(".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;
        }
    });

if(alertValidation == ""){      
            if($("#total-weight").text() < '0')
{
    _msg = '';
 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')
{
    _msg = '';
 alertValidation = "Your Total Session Marks Remaining does not equal 0 \n\n\u2022 You Have " + marks +  " Marks Remaining";   
}

        else if(questionsAdded  < maxQuestions){
    msg = '';
     alertValidation("You Have Not Added in All of Your Questions. You have " + (maxQuestions - questionsAdded) + " Questions Remaining:" );
}


}

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

    return true;
}

1 个答案:

答案 0 :(得分:1)

你可以检查号码。添加的行数与您拥有的最大数量进行比较。试试这个。

var maxQuestions = 5;
var questionsAdded = $('tr.optionAndAnswer').length;
if(questionsAdded  < maxQuestions){
     alert("Questions remaining: " + (maxQuestions - questionsAdded));
}