当我通过javascript设置检查状态时,我想要的是单选按钮触发onchange事件。
<script>
function check()
{
document.getElementById("red").checked=true
}
function uncheck()
{
document.getElementById("red").checked=false
}
function selectionChanged(){
alert("checked");
}
</script>
What color do you prefer?<br>
<input type="radio" name="colors" id="red" onchange="selectionChanged()">Red<br>
<input type="radio" name="colors" id="blue" onclick="selectionChanged()">Blue<br>
<input type="radio" name="colors" id="green">Green
<button type="button" onclick="check()">Check "Red"</button>
<button type="button" onclick="uncheck()">Uncheck "Red"</button>
感谢大家的帮助。这是一个更大问题的片段。我正在使用第三方报告工具(LogiXml)。我唯一的选择是更改事件,因为其余的javascript是由工具生成的。所以提供的一些选项不会帮助我。因此,在上面的例子中,当我点击按钮时,单选按钮中的相应事件应该触发。
答案 0 :(得分:1)
这是你想要做的吗?
<script>
function check()
{
document.getElementById("red").checked=true;
selectionChanged();
}
function uncheck()
{
document.getElementById("red").checked=false
selectionChanged();
}
function selectionChanged(){
alert("checked");
}
</script>
所以你可以点击它或按下按钮进入“selectionChanged()”功能。
答案 1 :(得分:0)
您可以在通过JS检查/取消选中时手动触发事件。像这样......
document.getElementById("red").onchange();
警告:请检查与其他浏览器(尤其是IE)的兼容性,否则使用jQuery来完成相同的操作。
答案 2 :(得分:0)
您也可以这样调用onClick方法:
document.getElementById("radioButton").click()
答案 3 :(得分:0)
更改onclick to onchange for all单选按钮,因为在onchange中的某个单选按钮和onclick中的某些单选按钮
<input type="radio" name="colors" id="red" onchange="selectionChanged()">Red<br>
<input type="radio" name="colors" id="blue" onchange="selectionChanged()">Blue<br>
<input type="radio" name="colors" id="green" onchange="selectionChanged()">Green
答案 4 :(得分:0)
如果你想通过onChange事件运行selectionChanged函数,当用户点击调用check()函数时,那么你可以直接在check()函数上调用selectionChanged函数使其运行。
请检查下面的代码,我们在check()函数中添加了selectionChanged():
<script>
function check()
{
document.getElementById("red").checked=true
selectionChanged();
}
function uncheck()
{
document.getElementById("red").checked=false
}
function selectionChanged(){
alert("checked");
}
</script>
What color do you prefer?<br>
<input type="radio" name="colors" id="red" onchange="selectionChanged()">Red<br>
<input type="radio" name="colors" id="blue" onclick="selectionChanged()">Blue<br>
<input type="radio" name="colors" id="green">Green
<button type="button" onclick="check()">Check "Red"</button>
<button type="button" onclick="uncheck()">Uncheck "Red"</button>
答案 5 :(得分:0)
Javascript OnChnage()
事件不适用于IE8,因此最好使用click
事件代替更改事件。
见:http://forum.jquery.com/topic/ie8-onchange-onclick-not-firing。
关于更改事件的另一个有趣的事情是,当您使用Jquery的change()
函数时,它只会在您单击以进行检查时起作用。而不是当你点击取消选中。
JQuery $(#radioButton).change(...) not firing during de-selection
答案 6 :(得分:-1)