使用jquery重置单选按钮上的默认值

时间:2013-01-25 18:54:18

标签: jquery asp.net asp.net-mvc-3

我遇到了一些问题,我在一个处理互斥单选按钮的asp.net mvc3应用程序中使用了jquery。检查/取消检查部分工作正常,但单选按钮控件的值保留其真实值,即使它未被选中。

这是我正在使用的jquery:

$('.customRadio').click(function () {
    var checkState = $(this).attr('checked');
    $('.customRadio:checked').each(function () {
        $(this).attr('checked', false);
    });
    $(this).attr('checked', checkState);
});

我已尝试使用jquery设置.val('myValue')属性,但它不起作用:

$(this).val($(this).getAttribute("falsevalue"));

这是渲染的html:

<div class="one columns " style="min-width: 64px;">

                    <label for="Approve" class="hide-on-phones" style="white-space: nowrap">Approve</label>
                    <span class="clearfix hide-on-phones"></span>
                    <label for="Approve" class="show-on-phones">Approve &nbsp; </label>
                    <span class="clearfix show-on-phones"></span>                        

                <input class="customRadio" falsevalue="N" id="Approve" name="Approve" truevalue="Y" type="radio" value="N">
            </div>

<div class="one columns " style="min-width: 50px;">

                    <label for="Reject" class="hide-on-phones" style="white-space: nowrap">Reject</label>
                    <span class="clearfix hide-on-phones"></span>
                    <label for="Reject" class="show-on-phones">Reject &nbsp; </label>
                    <span class="clearfix show-on-phones"></span>                        

                <input class="customRadio" falsevalue="Y" id="Reject" name="Reject" truevalue="N" type="radio" value="Y">
            </div>

我正在使用Chrome检查元素。

任何人都有任何想法或建议吗?

谢天谢地,

1 个答案:

答案 0 :(得分:2)

getAttribute是一个原生的JS方法,使用attr():

$(this).val($(this).attr("falsevalue"));

请注意,如果您正在检查DOM检查器中的元素(如chrome或firebug),则即使以编程方式更改它,checked属性也不会更改,但在表单提交时它将更改。并且不应该需要循环,只需执行$('.customRadio:checked').prop('checked', false);(并且作为属性,prop()将是正确的方法)。