将脚本绑定到单选按钮:奇怪的行为:不按名称绑定
Binding Script to Radio Buttons : Weird Behaviour : Not Binding by Name
在我的 mvc 应用程序中,我将相同的函数绑定到这两个单选按钮。
$('#Fra').bind('change', function () {
f_GC();
});
$('#Hea').bind('change', function () {
f_GC();
});
这几行的工作方式是 Fra 有 2 个具有相同名称/ID 的单选按钮(不同的值)。Hea 有 4 个具有相同名称/ID 的单选按钮(不同的值)......
我的理解是,所有属于 Fra、/Hea 的 ID 都会绑定到函数......
这些工作的时间最长,我一定更改了一些代码......但是,要让所有 6 个单选按钮运行这些功能,我现在必须像这样绑定它们......
$('input:radio[name=Fra][value=' + 1 + ']').bind('change', function () {
f_GC();
});
$('input:radio[name=Fra][value=' + 2 + ']').bind('change', function () {
f_GC();
});
$('input:radio[name=Hea][value=' + 1 + ']').bind('change', function () {
f_GC();
});
$('input:radio[name=Hea][value=' + 2 + ']').bind('change', function () {
f_GC();
});
$('input:radio[name=Hea][value=' + 3 + ']').bind('change', function () {
f_GC();
});
$('input:radio[name=Hea][value=' + 4 + ']').bind('change', function () {
f_GC();
});
对于这种行为有简单的解释吗?chrome 调试工具在 2 个配置中的任何一个中都没有显示 JS 错误。
尝试按名称更新所有字段很简单。
$('input:radio[name=Hea]').on('change', function () {
f_GC();
});
可能有许多不同的方法可以做到这一点,但这种方法将起作用:)
希望这有帮助。
jQuery doc 说 ID 选择器:"每个 id 值只能在文档中使用一次。如果为多个元素分配了相同的 ID,则使用该 ID 的查询将仅选择 DOM 中第一个匹配的元素。
如果您不想更改 ID,那么另一种解决方案是将事件侦听器添加到列表的父元素并使用"委托"样式的事件附件。然后,在事件处理程序中,可以查询触发事件的元素的 id 并采取相应的操作。
相关文章:
- 无法将java脚本函数与Panel'绑定;s OnLoad事件
- 如何将此脚本绑定到锚点's单击事件
- 如何调用绑定到angular元素的java脚本函数
- 取消绑定由加载jQuery'的外部脚本添加的事件;s的getScript函数
- 谷歌应用程序脚本:如何在没有用户交互的情况下调用绑定到处理程序的函数
- 如何最好地规避MVC4脚本绑定
- 应用脚本的绑定方式因输入源而异
- 将脚本绑定到单选按钮:奇怪的行为:不按名称绑定
- Java 脚本中的 JavaScript 脚本中的绑定方法调用
- jQuery .on() 脚本插入 DOM 时未绑定
- 咖啡脚本构造函数中的绑定事件
- 绑定 JavaScript:内联或外部(或脚本)
- 将JavaScript脚本绑定到各自的网页
- ko foreach绑定内部<脚本>
- 有什么方法可以绑定'任何'通过身份验证脚本重定向(链接/刷新等)
- 绑定到脚本标签的javascript代码的生命周期是什么?
- 设置绑定脚本的执行顺序
- jQuery库在*服务器端* Google Apps容器绑定脚本
- 如何从dom元素解绑定脚本
- 为selenium webdriver ruby绑定脚本使用javascript执行器启用禁用字段