我遇到了一些问题,我在一个处理互斥单选按钮的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 </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 </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检查元素。
任何人都有任何想法或建议吗?
谢天谢地,
森
答案 0 :(得分:2)
getAttribute是一个原生的JS方法,使用attr():
$(this).val($(this).attr("falsevalue"));
请注意,如果您正在检查DOM检查器中的元素(如chrome或firebug),则即使以编程方式更改它,checked属性也不会更改,但在表单提交时它将更改。并且不应该需要循环,只需执行$('.customRadio:checked').prop('checked', false);
(并且作为属性,prop()将是正确的方法)。