更改任何货运字段时取消选中“与结算相同”的最快方法

时间:2012-01-08 19:45:36

标签: jquery forms

我有一个BillingInfo的字段集和同一表单中的第二个字段集(默认隐藏),其中字段的映射如下:

Billingfieldset
  FirstName
  LastName
  ...

Shippingfieldset
  ShippingFirstName
  ShippingLastName
  ...

当页面加载以具有“SameAsBilling”复选框时默认:选中并按照“结算”字段填充所有字段。我希望jQuery在用户开始在任何Shipping字段中输入新值时取消选中该框。

我想避免一个很长的'if / then'测试,它通过所有字段手动步进:更改事件,但由于字段集之间没有一对一的映射,这可能是不可能的?< / p>

2 个答案:

答案 0 :(得分:1)

var $shippingFields = $('#Shippingfieldset').find('input').on('keyup', function()
{
    $('#sameAsCheckbox').prop('checked', false);
    $shippingFields.off();
});

答案 1 :(得分:0)

简单解决方案:

  1. 将课程放置到所有需要的字段(例如.shipping)
  2. 在SameAsBilling字段上放置一个类(例如.sameasbilling)
  3. 使用这样的选择器:

    // Catch keydown
    $('.shipping').live('keydown','uncheckBox');
    
    // Uncheck box
    function uncheckBox() {
       $('.sameasbilling').removeAttr('checked');
    };