jquery单选按钮没有切换?

时间:2011-06-23 17:10:40

标签: javascript jquery

我对这段代码很困惑,它自我解释它应该做什么,但它没有做到

<input  name="property" type="radio" checked value="1" />Station Masters House
<input  name="property" type="radio" value="2" />Railway Carriage

<br><br>
<div id="fillin">press</div>

$("#fillin").click(function() {    
        if ($('input[name=property]').val() == "1")
        {

            alert($('input[name=property]').val());

        } else if ($('input[name=property]').val() == "2") {

            alert($('input[name=property]').val());
        }


    });

这里的例子

http://jsfiddle.net/BFf5H/40/

2 个答案:

答案 0 :(得分:4)

input[name=property].length === 2 ...因此,.val()无效。 (.val拉出它找到的匹配请求选择器的DOM中第一个元素的值,但<select multiple>元素的情况除外。)

请尝试input[name=property]:checked

$("#fillin").click(function() {    
    if ($('input[name=property]:checked').val() == "1")
    {

        alert($('input[name=property]:checked').val());

    } else if ($('input[name=property]:checked').val() == "2") {

        alert($('input[name=property]:checked').val());
    }


});

更好的是,缓存你需要的东西,所以你只需要访问DOM(或者在这种情况下,jQuery的缓存):

$("#fillin").click(function() {
   var val = $('input[name=property]:checked').val();
    if ( val == "1") {
        alert(val);
    } else if (val == "2") {
        alert(val);
    }
});

答案 1 :(得分:1)

你应该做

if ($('input[name=property]:checked').val() == "1")