否则如果javascript中的语句无法显示验证消息

时间:2013-01-11 00:57:33

标签: javascript html

我在显示字符串时遇到问题,具体取决于验证中的if / else语句。

如果查看下面的代码,如果满足if语句,那么它会显示正常的消息,但是当我确保满足if语句并故意失败时else if语句,而不是显示消息,它只显示一个空白。为什么在下面的javascript验证中未显示else if语句时显示消息:

function editvalidation() {
     var isDataValid = true;
     var currentAssesO = document.getElementById("currentAssessment");
     var noStudentsO = document.getElementById("addtextarea");
     var studentAssesMsgO = document.getElementById("studentAlert");

     studentAssesMsgO.innerHTML = "";

     if (currentAssesO.value == ""){
         $('#targetdiv').hide();
         studentAssesMsgO.innerHTML = "Please Select an Assessment to edit from the Assessment Drop Down Menu";
         isDataValid = false; 
     }else if (noStudentsO.value == ""){
         $('#targetdiv').hide();
         studentAssesMsgO.innerHTML = "You have not Selected any Students you wish to Add into Assessment";
         isDataValid = false; 
     }
     else{
         studentAssesMsgO.innerHTML = ""; 
     }

     return isDataValid;
}

更新

HTML:

SELECT BOX(选项附加到此框中):

<select multiple="multiple" name="addtextarea" id="studentadd" size="10">
</select>

DROP DOWN MENU:

<select name="session" id="sessionsDrop">
<option value="">Please Select</option>
<option value='20'>EWYGC - 10-01-2013 - 09:00</option>
<option value='22'>WDFRK - 11-01-2013 - 10:05</option>
<option value='23'>XJJVS - 12-01-2013 - 10:00</option>
</select> </p> 

ALERT MESSAGE:

<div id='studentAlert'></div>

验证要求:

  • 如果下拉菜单为空,则显示需要从警报消息div的下拉菜单中选择评估的消息。

  • 如果下拉菜单不为空,则检查选择框是否包含任何选项,如果选择框中不包含任何选项,则替换div警告消息,指出未选择任何学生添加到评估中

  • 如果下拉菜单不为空且选择框不为空(或换句话说包含选项),则div警告消息只是一个空字符串""

2 个答案:

答案 0 :(得分:2)

以这种方式改写您的JavaScript:

function editvalidation() {
    var isDataValid = true;
    var currentAssesO = document.getElementById("currentAssessment");
    var noStudentsO = document.getElementById("addtextarea");
    var studentAssesMsgO = document.getElementById("studentAlert");
    var errorMsg = "";

    studentAssesMsgO.innerHTML = "";
    if (currentAssesO.value == "" || noStudentsO.value == "") {
        $('#targetdiv').hide();
        isDataValid = false; 

        if (currentAssesO.value == "") {
            errorMsg += "Please Select an Assessment to edit from the Assessment Drop Down Menu";
        }

        if (noStudentsO.value == "") {
            errorMsg += "You have not Selected any Students you wish to Add into Assessment";
        }

        studentAssesMsgO.innerHTML = errorMsg; // Plus whatever styling for messages.
    }

    return isDataValid;
}

更新回答

请将此内容放入<head>部分,以包含jQuery。

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>

更新您的脚本:

function editvalidation()
{
    if ($("#sessionsDrop").val()=="")
        $("#studentAlert").html("Assessment needs to be filled.");
    if ($("#sessionsDrop").val()!="" && $("#studentadd").children().length==0)
        $("#studentAlert").html("No students have been selected to add to assessment.");
    if ($("#sessionsDrop").val()!="" && $("#studentadd").children().length!=0)
        return true;
    return false;
}

答案 1 :(得分:1)

这是魔术:

else {
    studentAssesMsgO.innerHTML = ""; 
    alert(noStudentsO.value); // tell me why I'm in this block
}