无法验证预选的单选按钮

时间:2013-11-27 04:57:49

标签: javascript jquery html forms

我有一个表单,其中包含将动态添加到表单的数据。一旦添加了数据,我想验证单选按钮的值(特别是如果已经选中了单选按钮),然后根据选中的单选按钮执行不同的操作。

目前,我无法这样做,因为无论单选按钮的状态(即检查或取消选中),我总是收到警报(“按钮未被检查”)。

代码:

<!DOTYPE HTML>
<html>

<head>
    <link type='text/css' rel='stylesheet' href='style.css'>
    <!--jQuery Validation-->
    <!--Loads JQuery and JQuery validate plugin-->
    <script src="//code.jquery.com/jquery-1.9.1.js"></script>
    <script type='text/javascript'>
        $(document).ready(function ()
        {


            function checkradio(radio)
            {

                if (radio.checked)
                {
                    alert("no is checked");
                }
                else
                {
                    alert("no is not checked");
                }

            }

            function radiocheck()
            {

                checkradio($('#no'));

            }

            $('#submit1').click(function ()
            {

                radiocheck();

            })


        });
    </script>
</head>

<body>    
    <input type='radio' id='yes' name='radiobutton' value='yes'>yes
    <input type='radio' checked='checked' id='no' name='radiobutton' value='no'>no
    <input type='button' id='submit1' name='submit' value='submit'>    
</body>    
</html>

4 个答案:

答案 0 :(得分:1)

您正在尝试在jQuery对象上使用本机DOM元素checked属性。

可以使用:

if(radio.is(':checked'));

或者将原生DOM元素传递给checkradio()而不是jQuery对象

checkradio($('#no')[0]);

答案 1 :(得分:0)

function checkradio(radio){

    if(radio.prop('checked'))
    {
        alert("no is checked");
    }
    else
    {
        alert("no is not checked");
    }

}

OR

$('#submit1').click(function(){
    if($('#no').prop('checked')){
       alert("is checked");
    }else{
       alert("is not checked");
    }
})

答案 2 :(得分:0)

试试这个

 checkradio($("input:radio[name=radiobutton]"));

答案 3 :(得分:0)

更改您的代码,如

checkradio($("input[name='radiobutton']")); //This will give all radio buttons with name "radiobutton"

并在if()

添加radio.is(':checked')

<强> FIDDLE