Javascript:如何让单选按钮的“onchange”事件通过外部函数触发?
Posted
技术标签:
【中文标题】Javascript:如何让单选按钮的“onchange”事件通过外部函数触发?【英文标题】:Javascript: How to get a radio button's "onchange" event to fire through an external function? 【发布时间】:2017-10-12 02:06:03 【问题描述】:当通过外部函数而不是通过单击单选按钮本身检查单选按钮时,是否可以触发单选按钮的“onchange”事件?
我在下面创建了我的问题的演示,请随意将以下内容放入文本文件并将其另存为 .html:
<!DOCTYPE html>
<html>
<body>
<p>
This example demonstrates how the "onchange" event on radio buttons does not fire if the button is selected externally, i.e. by setting its "checked" value to "true".
<br />
You can test this by clicking one of the radio buttons invididually, then by clicking the "Select 1" or "Select 2" buttons.
<br />
The radio buttons have an "onchange" event registered such that an alert box should pop up when one of them is selected.
</p>
1: <input type="radio" value="1" id="1" name="myradio" onchange="myFunction()" /> <input type="button" value="Select 1" onclick="document.getElementById('1').checked=true;" /><br />
2: <input type="radio" value="2" id="2" name="myradio" onchange="myFunction()" /> <input type="button" value="Select 2" onclick="document.getElementById('2').checked=true;" />
<script>
function myFunction()
alert("A radio button was selected.");
</script>
</body>
</html>
这不是How to trigger event in javascript? 的复制品,方法如下:
如果我要手动触发事件,那将需要我查看单选按钮并与我上次查看它的时间进行比较,然后相应地触发“onchange”事件。问题是可以通过多种方式(单击、键盘按下、触摸/点击、外部功能等)选择单选按钮,而不是监视每个选择途径,我宁愿让输入元素为我做这件事.如果我能实现我在问题中提出的要求,它将简化这一点。
【问题讨论】:
How to trigger event in JavaScript?的可能重复 ***.com/questions/2490825/… 或者如果您使用 jQuery,您可以使用 .trigger('change') 轻松完成 @jmoerdyk 如果我要手动触发事件,那将需要我查看单选按钮并与我上次查看它的时间进行比较,然后相应地触发“onchange”事件。问题是可以通过多种方式(单击、键盘按下、触摸/点击、外部功能等)选择单选按钮,而不是监视每个选择途径,我宁愿让输入元素为我做这件事. @user3163495 如果你有 jQuery,this answer 会为更改和点击事件创建一个新的处理程序。 【参考方案1】:使用.click()
<input type="button" value="Select 2" onclick="document.getElementById('2').click();" />
你应该避免使用内联js。
【讨论】:
以上是关于Javascript:如何让单选按钮的“onchange”事件通过外部函数触发?的主要内容,如果未能解决你的问题,请参考以下文章
单选按钮的 HTML 表。使单选按钮可单击单元格中的任何位置