当复选框分配有 jQuery 时,勾选不再起作用

Posted

技术标签:

【中文标题】当复选框分配有 jQuery 时,勾选不再起作用【英文标题】:when checkbox has jQuery assigned to it, tick no longer works 【发布时间】:2012-03-08 18:14:31 【问题描述】:

我的一个页面上的复选框有一个奇怪的问题。基本上我有一些 jQuery (下面)分配给它,这样当它被点击时,下面的字段会填充与上面相同的信息(与计费信息类似)但是当这个 jQuery 被分配给它时,勾选失败填写复选框。

我尝试了各种方法来手动勾选复选框,但无济于事,有人能解释一下这个问题吗?

$('#sameasbilling').toggle(function() 

    //assign value of billing firstname text input to variable 'firstname'
    var firstname = $('input[name=billingfirstnames]').val();

    //insert value of 'firstname' into delivery text input
    $('input[name=deliveryfirstnames]').val(firstname);

    $('#sameasbilling').attr("checked", checked);

,function() 
    $('input[name=deliveryfirstnames]').val("");
);

我尝试过的 jQuery(加上这两行的许多变体)来让自动收报机手动工作如下,它们都没有工作。

$('#sameasbilling').attr("checked", checked);

$('#sameasbilling').prop("checked", true);

提前致谢。丹。

【问题讨论】:

我认为问题更多出在 JQuery toggle() 事件中。尝试将切换开关更改为 click() 事件,看看是否有帮助? 谢谢,原来问题出在 .toggle 函数上。 【参考方案1】:

在这种情况下,您对toggle() 方法的使用不正确,请改用click()。试试这个:

$('#sameasbilling').click(function() 
    if ($(this).is(":checked")) 
        //assign value of billing firstname text input to variable 'firstname'
        var firstname = $('input[name=billingfirstnames]').val();

        //insert value of 'firstname' into delivery text input
        $('input[name=deliveryfirstnames]').val(firstname);
    
    else 
         $('input[name=deliveryfirstnames]').val("");
    

【讨论】:

感谢您的回复,完美运行。那么是我的 .toggle 函数格式错误还是 .toggle 导致了问题,可能是 .toggle 函数的工作方式? toggle() 语法本身是正确的,但将其放在 click() 处理程序中实际上意味着代码运行了两次。

以上是关于当复选框分配有 jQuery 时,勾选不再起作用的主要内容,如果未能解决你的问题,请参考以下文章

jQuery实现全选效果

jQuery实现全选效果

GridView 中的全选不起作用

如何为每个复选标记保存复选框并增加整数?

jQuery - Kendo UI 复选框控件

jquery实现全选 我全选后,取消全选,再点击全选,却选不上。我手动选上,然后点击取消全选,能够取消。