【问题标题】:.change() in jquery not working?jquery中的.change()不起作用?
【发布时间】:2018-05-09 22:30:39
【问题描述】:

我想使三个复选框互斥。 我写了以下代码:

window.jQuery && jQuery(window.parent.document).ready(function() {
$('#id1,#id2,#id3').live('change', function(){
if ($this.prop('checked', true))
$('#id1,#id2,#id3').not(this).prop('checked', false)
})});

我已将此代码放在页面的最底部。 我检查了提供的解决方案:HTML <select> JQuery .change not working

在按下复选框之前或之后,我在控制台中没有收到任何错误消息,它似乎不起作用。

我是否需要为 HTML 代码中的复选框创建一个单独的函数并将其附加到“onchange”事件?

【问题讨论】:

  • 不要使用.live,使用.on
  • .live() vs .on() method的可能重复
  • @Carsten Løvbo Andersen 谢谢,但结果是一样的。还是不行,控制台也没有报错信息。
  • 尝试在ready()函数中添加console.log()语句来验证它是否找到jquery并绑定.change()函数
  • @Muhammad Omer Aslam 如果它不能识别 jquery,它不会抛出 $ 未定义的错误消息吗?

标签: jquery html checkbox onchange


【解决方案1】:

试试这个:

$('#id1, #id2, #id3').on('change', function() {
  console.log("Changed one!");
  if ($(this).prop('checked', true)) {
    $('#id1,#id2,#id3').not(this).prop('checked', false);
  }
});

您的 if 语句后面缺少大括号,我将 $this 更改为 $(this)。

这是一个有效的小提琴: https://jsfiddle.net/o7wptoca/3/

【讨论】:

    猜你喜欢
    • 2012-08-26
    • 1970-01-01
    • 2012-06-28
    • 2011-04-24
    • 1970-01-01
    • 2016-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多