【问题标题】:Fire function on change of <input> tag with jQuery (checkbox/textbox)使用 jQuery(复选框/文本框)更改 <input> 标记时触发函数
【发布时间】:2011-10-06 20:22:51
【问题描述】:

每当我的表单(复选框、文本框)上的输入标签发生更改时,我都希望触发 updateTotals() 函数。

我正在使用 Telerik MVC NumericTextBoxes/PercentTextBoxes,它们最终呈现为标签,就像我的复选框一样。

我试图将这样的内容应用到我的页面上:

$("#SupervisionRequired").change(updateTotals());

此 jQuery 在初始页面加载时触发,但在 Checkbox 更改时不会触发。

由于我正在使用一些基于我的模型(EditorFor、TextBoxFor)的通用 MVC 助手,我无法将 onChange 事件直接应用到这些控件上。我的最终目标是在复选框被选中/取消选中时调用 updateTotals() 函数,并且当用户在输入标记之外单击时(对于 NumericTextBoxes)。

我可以做些什么来更改我上面的 jQuery,或者添加到它以使其成为可能?

【问题讨论】:

    标签: javascript jquery asp.net-mvc onchange


    【解决方案1】:

    正确的语法是

    $("#SupervisionRequired").change(updateTotals);
    

    (在updateTotals 之后没有()

    【讨论】:

      【解决方案2】:

      updateTotals() 函数包装在function(){} 中。

      $("#SupervisionRequired").change(function(){
          updateTotals()
      });
      

      目前,您立即调用函数updateTotals(),并将返回值作为事件侦听器传递给change 事件。

      您可以使用选择器选择表单中的所有输入元素,而不是将change 事件添加到$("#SupervisionRequired"),例如:$("#myFormName input").change(function(){updateTotals();})

      【讨论】:

      • 谢谢,效果很好。我很高兴我在修改语法太长之前立即发布了这个!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多