更改<输入>时触发功能带有 jQuery 的标签(复选框/文本框)输入>
每当我的表单(复选框、文本框)上的输入标签发生更改时,我都会触发 updateTotals() 函数。
我正在使用 Telerik MVC NumericTextBoxes/PercentTextBoxes,它们最终呈现为标签,就像我的复选框一样。
我尝试将类似的内容应用到我的页面来执行此操作:
$("#SupervisionRequired").change(updateTotals());
此 jQuery 在初始页面加载时触发,但在更改复选框时不会触发。
由于我使用一些基于我的模型(EditorFor、TextBoxFor)的通用 MVC 助手,我无法直接将 onChange 事件应用到这些控件上。我的最终目标是在选中/取消选中复选框以及用户单击输入标记外部(对于 NumericTextBoxes)时调用 updateTotals() 函数。
我可以做些什么来改变我上面的 jQuery,或者添加它以使其成为可能?
I'm looking to fire an updateTotals() function whenever input tags are changed on my form (checkboxes, textboxes).
I'm using Telerik MVC NumericTextBoxes/PercentTextBoxes which ultimately render as tags just like my checkboxes.
I've attempted to apply something like this to my page to do so:
$("#SupervisionRequired").change(updateTotals());
This jQuery fires on the initial page load, but doesn't fire when the Checkbox is changed.
Since I'm using some generic MVC Helpers based on my model (EditorFor, TextBoxFor) I cannot directly apply the onChange event onto these controls. My end goal is to have the updateTotals() function called when a Checkbox is checked/unchecked, and when the user clicks outside of an input tag (for the NumericTextBoxes).
What can I do to change my above jQuery, or add to it to make this possible?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
正确的语法是
(
updateTotals
之后没有()
)The correct syntax is
(without the
()
afterupdateTotals
)将
updateTotals()
函数包装在function(){}
内。目前,您立即调用函数
updateTotals()
,并将返回值作为事件侦听器传递给change
事件。您无需将
change
事件添加到$("#SupervisionRequired")
,而是使用选择器来选择表单内的所有输入元素,例如:$("#myFormName 输入").change(function(){updateTotals();})
。Wrap the
updateTotals()
function inside afunction(){}
.Currently, you're immediately calling function
updateTotals()
, and passing the return value as an event listener to thechange
event.Instead of adding the
change
event to$("#SupervisionRequired")
, you an use a selector to select all of your input elements inside your form, eg:$("#myFormName input").change(function(){updateTotals();})
.