如何在进入下一页之前验证单选按钮?

use*_*637 0 javascript coldfusion

我有一个表单,我有单选按钮,在我进入下一页之前我想验证它们然后点击'NEXT'按钮.

 <cfloop index="i" from="1" to="4">
                 <cfset question = GetEmployeeCSEDepts["csedept_question" & i][GetEmployeeCSEDepts.CurrentRow]>
                   <cfif question neq "">
                       <tr>
                        <cfif i is 1><td>Leadership <br/>               
                        </td></cfif>
                        <cfif i is 2><td>Integrity<br/>                     
                        </td></cfif>
                        <cfif i is 3><td>Service<br/>
                        </td></cfif>
                        <cfif i is 4><td>Teamwork<br/>          
                        </td></cfif>

                         <td valign="top">    <div align="center">  <input type="radio" name="sltRating#i#" value="5"></div><br></td>
                            <td valign="top"><div align="center">       <input type="radio" name="sltRating#i#" value="4.5"></div><br></td>
                            <td valign="top"><div align="center">       <input type="radio" name="sltRating#i#" value="4"></div><br></td>
                            <td valign="top">   <div align="center">    <input type="radio" name="sltRating#i#" value="3.5"></div><br></td>

                     </tr>
                  </cfif>
                </cfloop>
Run Code Online (Sandbox Code Playgroud)

当我点击'下一步'时,我收到错误'ReferenceError:validateNext未定义'.也许这不是最好的方法.我怎样才能使它工作?

 <button type="button" id="btnNext" onclick="validateNext()">Next </button>
<script type="text/javascript" language="javascript">
function validateNext(){
if (!document.feedback.field[0].checked &&
!document.feedback.field[1].checked &&
!document.feedback.field[2].checked) && !document.feedback.field[2].checked){
    // no radio button is selected
    alert ('please make sure all questions are check');
    return false;
}
console.log('testing');
}

</script>
Run Code Online (Sandbox Code Playgroud)

Ron*_*mar 7

if语句中有一个额外的括号.删除它,然后再试一次.

if (!document.feedback.field[0].checked &&
!document.feedback.field[1].checked &&
!document.feedback.field[2].checked && !document.feedback.field[2].checked)
Run Code Online (Sandbox Code Playgroud)

编辑:这可能是你的HTML格式可能是一个问题可能是你的'形式'标签不是很好.另外,不使用field [0]而是明确使用输入字段的名称.

 <cfoutput>
    <form name="feedback">
      <table>
    <cfloop index="i" from="1" to="4">
                         <cfset question = GetEmployeeCSEDepts["csedept_question" & i][GetEmployeeCSEDepts.CurrentRow]>

        <cfif question neq "">
            <tr>
            <cfif i is 1><td>Leadership <br/>
            </td></cfif>
            <cfif i is 2><td>Integrity<br/>
            </td></cfif>
            <cfif i is 3><td>Service<br/>
            </td></cfif>
            <cfif i is 4><td>Teamwork<br/>
            </td></cfif>

                <td valign="top">   <div align="center">   <input type="radio"  name="sltRating#i#" value="5"></div><br></td>
                <td valign="top">   <div align="center">   <input type="radio"  name="sltRating#i#" value="4.5"></div><br></td>
                <td valign="top">   <div align="center">   <input type="radio"  name="sltRating#i#" value="4"></div><br></td>
                <td valign="top">   <div align="center">   <input type="radio"  name="sltRating#i#" value="3.5"></div><br></td>

            </tr>
        </cfif>
    </cfloop>
    </table>
        <button type="button" id="btnNext" onclick="return validateNext();">Next </button>
    </form>
    <script type="text/javascript" language="javascript">
        function validateNext(){

            if($("input:radio[name='sltRating1']").is(":checked") && $("input:radio[name='sltRating2']").is(":checked") && $("input:radio[name='sltRating3']").is(":checked") &&$("input:radio[name='sltRating4']").is(":checked") ){

                alert ('please make sure all questions are check');
                return false;
            }

        }

    </script>
    </cfoutput>
Run Code Online (Sandbox Code Playgroud)