javascript中的else if语句无法显示验证消息

javascript中的else if语句无法显示验证消息,javascript,html,Javascript,Html,根据验证中的if/else语句显示字符串时遇到问题 如果您查看下面的代码,如果满足If语句,那么它会显示消息,这很好,但是当我确保满足If语句并且故意使否则If语句失败时,它只会显示一个空白,而不是显示消息。如果在下面的javascript验证中满足语句,为什么不显示whenelse的消息: function editvalidation() { var isDataValid = true; var currentAssesO = document.getElementBy

根据验证中的if/else语句显示字符串时遇到问题

如果您查看下面的代码,如果满足
If
语句,那么它会显示消息,这很好,但是当我确保满足
If
语句并且故意使
否则If
语句失败时,它只会显示一个空白,而不是显示消息。如果在下面的javascript验证中满足语句,为什么不显示when
else的消息:

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

请选择
EWYGC-10-01-2013-09:00
WDFRK-11-01-2013-10:05
XJVS-12-01-2013-10:00

警报信息:

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

验证要求:

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

  • 如果下拉菜单不为空,则检查选择框是否包含任何选项,如果选择框不包含任何选项,则替换div警报消息,说明没有选择要添加到评估中的学生

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

这里有一个神奇之处:

else {
    studentAssesMsgO.innerHTML = ""; 
    alert(noStudentsO.value); // tell me why I'm in this block
}
用以下方式重新表述您的JavaScript:
最新答案 请将jQuery包含在
部分中

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

@达文尼顿哈哈!真的吗P^这………嗨,我已经尝试了上面的代码,但是我在控制台中得到了一个
noStudentsO
isn null错误。顺便说一句,#addtextarea实际上是一个选择框,而不是一个textarea。我想检查一下是否没有options@user1964964可以使用jQuery吗?如果你更喜欢使用jQuery,那就选择itHaha,我也可以睡觉了。非常感谢:)
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;
}
<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;
}