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

我的javascript函数未显示所有验证消息,javascript,forms,validation,dom-traversal,Javascript,Forms,Validation,Dom Traversal,因此,如果两个验证分别工作(如果我只是在函数中输入单选按钮验证而没有微调器验证,那么单选按钮验证工作,反之亦然),那么当我在函数中输入两个验证时,顶部验证(即无线电验证)有效,但底部验证(即微调器验证)在假设有效时不显示消息 Code is below: <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />

因此,如果两个验证分别工作(如果我只是在函数中输入单选按钮验证而没有微调器验证,那么单选按钮验证工作,反之亦然),那么当我在函数中输入两个验证时,顶部验证(即无线电验证)有效,但底部验证(即微调器验证)在假设有效时不显示消息

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>
代码如下:
创建会话
函数验证(){
var errMsgO=document.getElementById(“radioAlert”);
var btnRadioO=document.getElementsByName(“sessionNo”);
var isbtnRadioChecked=false;
var errQuesMsgO=document.getElementById(“numberAlert”);
var questionNumberO=document.getElementsByName(“txtQuestion”);
对于(i=0;i

我能发现的一个错误是行
if(questionNumberO==0){
(此外,您还没有用
关闭
元素)

正确的方法是:

if(questionNumberO[0].value == 0){
原因:

if(questionNumberO[0].value == 0){
将返回具有指定
名称
属性的元素集合。如果您知道只有一个元素,则可以请求第一个(
[0]

value
属性存储输入元素的当前值。请参阅


更新:我已经为您创建了一个数组。

DOM元素数组永远不会等于零。而且,如果输入应该是一个数字,为什么不把它放在文本输入而不是文本区域?当我研究微调器时,它使用的是文本区域而不是文本输入框。我稍后会进行更改。感谢信息,它仍然不是在下面显示一条消息。我看不到任何拼写错误,但这一定是另一种方法。请检查我的小提琴,它可以工作。将它与您的代码进行比较。我基本上改变了两件事,即我提到的。textarea的值也永远不会为0——如果有显式转换,我会感觉更舒服。@Dave他使用了spinner在它上面,所以可能是这样。
'==0
在Javascript中也是如此。虽然你说得对,但我正试图集中精力修复代码。@bazmegakapa我知道会的,但如果该值保存在任何地方并与
==
等一起使用,它会很有价值;只是执行实际转换似乎总是比较安全。YMMV。