javascript - 我的 javascript 函数没有显示所有验证消息

标签 javascript forms validation dom-traversal

因此,如果两个验证单独工作(如果我只是将单选按钮验证放在函数中而不进行微调器验证,那么单选按钮验证就可以工作,反之亦然),当我将两个验证放在函数中时,顶部验证是怎么回事 radio 验证是否有效,但作为微调器验证的底部验证在应该显示消息时没有显示消息?

Code is below:

        <head>
                <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
                <title>Create a Session</title>
                        <script type="text/javascript">

    function validation() {
                    var errMsgO = document.getElementById("radioAlert");
                    var btnRadioO = document.getElementsByName("sessionNo");               
                    var isbtnRadioChecked = false;
                    var errQuesMsgO = document.getElementById("numberAlert");
                    var questionNumberO = document.getElementsByName("txtQuestion");

                    for(i=0; i < btnRadioO.length; i++){
                        if(btnRadioO[i].checked){
                            isbtnRadioChecked = true;
                        }
                    }

                    if(!isbtnRadioChecked) {
                       errMsgO.innerHTML = "Please Select the Number of Sessions you Require";
                    } else {
                        errMsgO.innerHTML = "";
                    }
                    return false; 



        if(questionNumberO[0].value == 0){
            errQuesMsgO.innerHTML = "Please Set the Number of Questions";
        } else {
            errQuesMsgO.innerHTML = "";
        }
           return false; 
                }    
</script>
        </head>
        <body>
        <form action="create_session.php" method="post" name="sessionform">
    <table>
              <tr>
              <th>2: Number of Sessions :</th>
              <td class="sessionNo"><input type="radio" name="sessionNo" value="1" />1</td>
              <td class="sessionNo"><input type="radio" name="sessionNo" value="2" />2</td>
              <td class="sessionNo"><input type="radio" name="sessionNo" value="3" />3</td>
              <td class="sessionNo"><input type="radio" name="sessionNo" value="4" />4</td>
              <td class="sessionNo"><input type="radio" name="sessionNo" value="5" />5</td>
              </tr>
              </table>
              <div id="radioAlert"></div>
        <table>
                    <tr>
                    <th>Number of Questions:</th>
                        <td class="spinner"><textarea class="spinnerQuestion" name="txtQuestion" id="txtQuestion" cols="2" rows="1"></textarea></td>
                        <td><button class="scrollBtn" id="btnQuestionUp"><img src="Images/black_uppointing_triangle.png" alt="Increase" /></button>
                        <button class="scrollBtn" id="btnQuestionDown"><img src="Images/black_downpointing_triangle.png" alt="Decrease" /></button></td>
                        </tr>
                        </table>
                        <div id="numberAlert"></div>
                        <p><input class="questionBtn" type="button" value="Prepare Questions" name="prequestion" onClick="validation()" /></p>      <!-- Prepare Questions here-->

                </form>
        </body>

最佳答案

我能发现的一个错误是 if(questionNumberO == 0){ 行(此外你还没有用 <script> 关闭你的 </script> 元素)。

The correct way is:

if(questionNumberO[0].value == 0){

Why:

getElementsByName() 将返回具有指定 name 属性的元素集合。如果您知道只有一个,则可以要求第一个([0])。

value属性存储输入元素的当前值。参见HTMLInputElement on MDN

更新:我为您创建了一个working jsFiddle Demo

关于javascript - 我的 javascript 函数没有显示所有验证消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8159698/

相关文章:

javascript - 当文本字段更改时更改范围

css - 使用 required 属性在 HTML5 输入字段上设置提示样式

javascript - 使用 Javascript 从 html 提交表单?

使用动态 "is in"约束的 Python 字典架构验证

javascript - jquery ajax 关闭后发布

javascript - 可扩展属性设置为 true 并且没有子节点的树节点不会呈现加号图标

javascript - FastClick 在 Phonegap 项目中抛出 .on ('click' ) 循环计数

javascript - 验证特定表单的表单输入

json - 使用 Play 2.4 中其他属性的依赖关系验证 json 属性

javascript - 当我尝试使用 jQuery 将一些 HTML 插入 DIV 元素时得到 NaN