jquery - 根据复选框被选中或未选中更改功能

标签 jquery

我有相同的功能检查表单中的 2 个不同的文本输入字段。如果选中复选框,我需要在文本输入字段之一上运行该函数。如果未选中该复选框,我需要在其他文本输入字段上运行该函数。

这是复选框:

<input id="use_different_addresses" type="checkbox" value="1" name="use_different_addresses" />Use different address<br />

默认情况下,该复选框未被选中。未选中时,我需要运行此函数:

$('#customer_country_name').change(function() {
    if ($('#customer_country_name').val() != 'United States') {
        $('.radio_us').hide();
    }
    else {
        $('.radio_us').show();
    }
});

当选中该复选框时,我需要运行此函数:

$('#shipping_country_name').change(function() {
    if ($('#customer_country_name').val() != 'United States') {
        $('.radio_us').hide();
    }
    else {
        $('.radio_us').show();
    }
});

谢谢!

最佳答案

为什么不直接在每个方法的顶部添加一个检查,以根据已检查状态确定它是否应该运行

$('#customer_country_name').change(function() {
  if (!$('#use_different_addresses').is(':checked')) {
   ...
  }
}

$('#shipping_country_name').change(function() {
  if ($('#use_different_addresses').is(':checked')) {
   ...
  }
}

编辑

OP 在评论中澄清,他们希望在选中复选框时隐藏某些单选框。这是我推荐的解决方案

$('#use_different_addresses').change(function() {
  if ($('#use_different_addresses').is(':checked')) {
    $('.radio_us').hide();
  } else {
    $('.radio_us').show();
  }
});

关于jquery - 根据复选框被选中或未选中更改功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5502519/

相关文章:

javascript - jQuery 和切换图标不能正确切换

Javascript 模糊搜索破解

jquery - Jquery中如何停止动画效果(stop方法)

javascript - Vue DevTools 正确更新但浏览器窗口不更新

asp.net - 如何使用 Web 控件的 Jquery 将文本分配给标签

javascript - 防止导航栏元素折叠

javascript - 进行 jquery 字段验证的最有效方法

jquery - document.getelementbyid 无法获取文本内容

JavaScript:在自身内部获取函数名称

javascript - 如何在所有浏览器和设备上将网页上的某些元素居中?