我正在使用gridview,其中一列中有一个单选按钮。它被用作真/假旗帜。无论如何,由于我的项目的性质,当我检查另一个时,我需要javascript取消选中任何单选按钮。这很好,除了我的gridview包装在更新面板中。我正在处理将jQuery重新加入autopost的问题,但是发生的事情是在回发后,删除我选中的单选按钮而不是将其放回去。如果我不使用jQuery它工作正常(但我没有得到按钮排他性),所以我认为它是我的代码。这是我的代码。
<script type="text/javascript">
$(document).ready(function () {
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);
function EndRequestHandler(sender, args) {
$("input").click(function () {
$("input").removeAttr('checked');
$(this).attr('checked','checked');
});
}
$("input").click(function () {
$("input").removeAttr('checked');
$(this).attr(':checked');
});
});
有没有更好的方法来编写此代码?感谢。
答案 0 :(得分:0)
$(this).attr(':checked'); //this doesnt look right.. what are you trying to do here?
$('input') // this will target all input fields on the page, all radio buttons, textboxes etc. i don't think u want that. try giving the radio's IDs and use the ID selector to select them in jQuery
答案 1 :(得分:0)
假设您将单选按钮的名称(而不是ID)设置为相同,HTML将自动为您选择,而无需任何jQuery。这就是收音机盒与复选框的不同之处。我首先考虑的是,如果你设置正确的话,你不应该需要一堆JS来做内置的HTML。
答案 2 :(得分:0)
我通过更改一些t-sql代码而不必使用jquery解决了这个问题。
答案 3 :(得分:0)
我改变了你的代码:
if( $('input.any-radio').length ){
$('input.any-radio').change(function(){ $('input.any-radio').removeAttr('checked'); $(this).attr('checked', 'checked'); });}
它对我有用!
答案 4 :(得分:0)
试试吧
对于单选按钮
function toggleCheckRadioButton(sender) {
var res;
if ($(sender).attr('previousValue') == 'true') {
$(sender).attr('checked', false)
res = false;
}
else {
$(sender).attr('checked', true);
res = true;
}
$('form input[type="radio"][name$="' + $(sender).attr('name') + '"]').each(function () {
$(this).attr('previousValue', false);
});
$(sender).attr('previousValue', res);
}
对于电台名单
function initToggleCheckRadioList(sender) {
$(sender).find('input[type="radio"]').each(function () {
$(this).click(function () { toggleCheckRadioButton(this); });
});
}