Javascript 单选按钮html缺少checked属性,但firebug表明它已被选中

Javascript 单选按钮html缺少checked属性,但firebug表明它已被选中,javascript,jquery,javascript-events,jquery-1.5,Javascript,Jquery,Javascript Events,Jquery 1.5,提前感谢您抽出时间 问题陈述摘要:浏览器上的单选按钮html不显示checked属性,但Firebug指示单选按钮的checked属性设置为checked 测试 Broswer:FF 3.6.18和IE8 jQuery:1.5 MVC3剃须刀 细节 使用MVC3和Razor,我从服务器渲染以下单选按钮。理想的功能是,在检查一个收音机时,应取消检查另一个收音机,反之亦然。换句话说,用户只允许选择一个选项——比如val1或val2 <div id="myRadioList"> &

提前感谢您抽出时间

问题陈述摘要:浏览器上的单选按钮html不显示checked属性,但Firebug指示单选按钮的checked属性设置为checked

测试

Broswer:FF 3.6.18和IE8 jQuery:1.5 MVC3剃须刀

细节

使用MVC3和Razor,我从服务器渲染以下单选按钮。理想的功能是,在检查一个收音机时,应取消检查另一个收音机,反之亦然。换句话说,用户只允许选择一个选项——比如val1或val2

<div id="myRadioList">
    <div>
        <input type="radio" value="val1" onclick="updateFunctionCalledHere(this)" name="myRadioName" id="myRadioName_val1" checked="checked">

    </div>
    <div>
        <input type="radio" value="val2" onclick="updateFunctionCalledHere(this)" name="myRadioName" id="myRadioName_val2">
    </div>
</div>
我正在简化代码,以避免发布不必要的详细信息


谢谢

那么,使用jQuery选择器时确实存在语法错误。应该是:

$('#myRadioList > div > input[value="myRadioName_val2"]')
你应该使用

$("#myRadioList > div > input[value=myRadioName_val2]").prop('checked', true);
HTML中的checked属性是默认值。 JavaScript中的checked属性引用单选按钮的当前状态

通常,最好让浏览器处理单选按钮和复选框的选中状态,而不是自己设置,否则会遇到此类问题。可以按照建议通过propchecked或通过。is:checked获取当前状态


您可能还想考虑使用像$MyRealOListScript这样的语法。Fix'输入[value=MyReaNoMaMixVal2] ]或者更好的是,$'MyReaNeNeMaMyVal2 ''作为jQuery中的子选择器可能是相当慢的,因为它们是从右向左读的。

选择器具有引用错配,并且您不可能看到HTML更改,使用PROP方法感谢您的伟大解释!
$("#myRadioList > div > input[value=myRadioName_val2]").prop('checked', true);