【问题标题】:jquery - cant correctly pass checkbox object to function when 'changing' another inputjquery - “更改”另一个输入时无法正确传递复选框对象以发挥作用
【发布时间】:2013-06-27 19:15:27
【问题描述】:

抱歉,问题标题没有太大意义。

我正在尝试将复选框从当前行传递给另一个函数,该函数会检查它是否被选中并相应地执行。

我有一个包含多行的表,当更改输入 qty 时,我希望将当前行和复选框名称/ID 传递给另一个函数。

你可以看例子here

这个小提琴中的html是我的php页面onload生成的。

我可以触发onchange,但该行的复选框始终为unchecked。我认为这是因为 var cb = $(this).siblings('input[name^="treated"]'); 没有将正确的对象传递给下一个函数。

我之前确实从 @pXL 那里得到了一些帮助,这个 fiddle 但是虽然它在这个例子中工作,但不能让它与我生成的 html 一起工作。

所以在更改数量时,如果选中了该特定行的复选框 treated,我希望 alert 1 触发。如果不勾选则alert 2

提前致谢。

【问题讨论】:

    标签: jquery function checkbox jquery-selectors siblings


    【解决方案1】:
    var cb = $(this).siblings('input[name^="treated"]');
    

    应该是

    var cb = $(this).closest('tr').find('input[name^="treated"]');
    

    siblings 在这种情况下不起作用,因为input[name^=treated] 不是数量输入的兄弟。

    兄弟是元素与其他元素处于同一级别。

    但这里 treated 输入在另一个 td 中,而不是相同的 td

    Check Fiddle

    【讨论】:

    • 好的,谢谢您的解释。很棒的东西。 breakthrough :-) 工作 100%
    • @Smudger.. 很高兴能帮上忙 :)
    猜你喜欢
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多