代码无效。单选按钮验证

时间:2014-03-13 12:38:22

标签: javascript html

我使用javascript验证单选按钮。

HTML-

 <form name="formreg" enctype="multipart/form-data" method="post">  
     <input type="radio" value="male" name="gender" /> Male<br />  
     <input type="radio" value="female" name="gender" /> Female<br />  
     <input value="Submit" onclick="return inputval()" type="submit" />  
 </form>  

JS-

<script type="text/javascript">  
    function inputval() {  
        var $XIForm = $('form[name=XIForm]');  
        if ($("form[name='formre'] input[type='radio']:checked").length != 1) {  
            alert("Select at least male or female.");  
            return false;  
        }  
        else {  
            var gender = $("input").val();  
            //alert(gender);  
            $XIForm.submit();  
            alert(gender);  
        }  
    }  
</script>  

任何人都可以帮忙解决这个问题。

2 个答案:

答案 0 :(得分:6)

这是代码。您必须创建一个表单并在提交时进行验证。

HTML: -

 <form name="myForm" action="targetpage.asp" onsubmit="return validateForm();"   method="post">  
        <label>Gender</label>&nbsp&nbsp  
        <input type='radio' name='XIGender' value='Male' id="XImale" />Male  
        <input type='radio' name='XIGender' value='Female' id="XIfemale" />Female</td>  
        <input type="submit" value="submit" id="XISubmit" />  
    </form>  

JS: -

 function validateForm() {  
        if (validateRadio(document.forms["myForm"]["XIGender"])) {  
            alert('All good!');  
            return false;  
        }  
        else {  
            alert('Please select a value.');  
            return false;  
        }  
    }  

    function validateRadio(radios) {  
        for (i = 0; i < radios.length; ++i) {  
            if (radios[i].checked) return true;  
        }  
        return false;  
    }  

希望这会对你有所帮助。 :) 享受编码。

答案 1 :(得分:0)

使用simple button代替submit button,这样您就可以阻止表单在出现问题时提交,并且只在else分支上提交。

<input value="Submit" onclick="return inputval()" type="button" />

http://jsfiddle.net/J62Qq/

另外,你有一些拼写错误(错误的表格名称)。

   function inputval() {  
    var $XIForm = $('form[name=formreg]');  //you had wrong name here
    if ($("form[name='formreg'] input[type='radio']:checked").length != 1) {  
        alert("Select at least male or female.");  
        return false;  
    }  
    else {  
        var gender = $("input").val();  
        //alert(gender);  
        $XIForm.submit();  
        alert(gender);  
    }  
}  

没有使用提交按钮的问题是没有JavaScript就无法提交表单,但我认为在你的情况下这是好的,因为如果你无法验证它,你不想提交表单。