jQuery检查/取消选中问题

时间:2010-09-02 03:42:59

标签: asp.net jquery radio-button

我正在使用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');
    });

});

有没有更好的方法来编写此代码?感谢。

5 个答案:

答案 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); });
    });
}