【问题标题】:when checkbox has jQuery assigned to it, tick no longer works当复选框分配有 jQuery 时,勾选不再起作用
【发布时间】: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 函数上。

标签: jquery forms checkbox textinput


【解决方案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() 处理程序中实际上意味着代码运行了两次。
猜你喜欢
  • 2019-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-02-01
  • 1970-01-01
相关资源
最近更新 更多