【问题标题】:JQuery using one checkbox to uncheck another programaticallyJQuery 使用一个复选框以编程方式取消选中另一个
【发布时间】:2011-01-27 14:41:55
【问题描述】:

我正在寻找一个脚本,其中一个复选框将取消选中另一个复选框。这有点复杂,因为所有数据都是以编程方式加载的。因此,如果未选中复选框,则该过程将获取其 src 值,然后遍历其他输入并找到标题为“RQlevel”的输入+单击元素的 src 值并将其设置为未选中。

这是当前代码。

function levels() {
  var test = $(this).attr('src'); 
  if ($(this).is(':not(:checked)')) { 
    $(':input').each(function() { 
      if ($(this).attr('title') === ('RQLevel' + test)) {
        $(this).removeAttr('checked');
      }
    });
  }
}

这里有一个工作示例可以说明问题http://jsfiddle.net/V8FeW/7/ 如果两个框都被选中并且第一个框未被选中,则它应该与第二个框一起使用。

太棒了

【问题讨论】:

标签: jquery input jsfiddle


【解决方案1】:
function levels() {
  var test = $(this).attr('src'); 
  if (!this.checked)
     $('input:checkbox[title=RQlevel' + test + ']').removeAttr('checked');
}

$(function() {
    $('input:checkbox').bind('change', levels);
});

演示http://jsfiddle.net/V8FeW/12/

【讨论】:

  • 还有一件事。如何添加属性 disabled 为好。 $('input:checkbox[title=RQlevel' + test + ']').Attr('disabled','disabled');不工作
【解决方案2】:

$('input [title="RQlevel"]').attr('checked', $(this).attr('checked'));

【讨论】:

  • 谢谢,但不会这样做,因为我们不知道另一个复选框的 ID,因为它们是以编程方式生成的,并且可能有多个标题为 RQlevel 的复选框也必须取消选中,在页面生成之前再次未知。
【解决方案3】:

在这里您可以找到一个不错、简短而优雅的解决方案:http://briancray.com/2009/08/06/check-all-jquery-javascript/

【讨论】:

  • 谢谢,但我们正在寻找具有相同标题的所有复选框,因此也不会这样做。我们不知道它们将有多少,也不能将它们放在同一个字段集中,因为它们是根据客户在表单中的输入以编程方式生成的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-15
  • 2021-12-23
  • 2011-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多