【问题标题】:onchange don't work on checkbox when there are multiple check当有多个检查时,onchange 对复选框不起作用
【发布时间】:2017-04-22 13:20:19
【问题描述】:

我有很多带有 onchange 事件的复选框,这些复选框会更改选中的线条颜色:

<input type="checkbox" onchange="cocheCommande($(this))" name="${NAME_SELECTION}" value="<%=command.getCdeId()%>"  />

function cocheCommande(chk)
{
    alert("test cocheCommande");
    var tr=chk.closest('tr');

    if (chk.is(':checked'))
    {
        tr.css('background','#33EE33');
        tr.nextUntil("tr.entete","tr").css('background','#FFFF33');
    }
    else
    {
        tr.css('background','#D0EED0');
        tr.nextUntil("tr.entete","tr").css('background','#EEEED0');
    }
}

我有一个功能可以检查所有内容或取消选中。但是如果我使用,即使检查了所有内容,也永远不会调用 onchange 事件。 为什么 ?我该怎么办?

【问题讨论】:

标签: javascript checkbox onchange


【解决方案1】:

正如其他人所说,您不能在 html 模板中使用 $;但是,您可以将 this 作为参数传递给您的 onchange 处理程序:

HTML:

<input onchange="change(this)" type="checkbox" />

JS:

function change(elem) {
  var element = $(elem);
  console.log(element.next())
}

https://plnkr.co/edit/dx8GoJxHwKa52VFCkn2G?p=preview

【讨论】:

  • 好的,当我一一检查时(像以前一样)它可以工作,但是当我使用函数同时检查所有内容时,永远不会调用 onchange...
  • 好吧,那是另一个问题 :) 你可能应该以某种方式改变你的“全选”功能
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-05-28
  • 1970-01-01
  • 2022-01-04
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
  • 2023-03-03
相关资源
最近更新 更多