How do I call onclick on a radiobutton list using javascript?
7 回答
你是如何生成单选按钮列表的?如果您只是使用 HTML:
<input type="radio" onclick="alert('hello');"/>
如果您通过 ASP.NET 之类的工具生成这些,则可以将其作为属性添加到列表中的每个元素。您可以在填充列表后运行它,或者如果您逐个构建列表,则将其内联:
foreach(ListItem RadioButton in RadioButtons){
RadioButton.Attributes.Add("onclick", "alert('hello');");
}
要在单选按钮上触发 onClick 事件,请调用click()
DOM 元素上的方法:
document.getElementById("radioButton").click()
使用jQuery:
$("#radioButton").click()
AngularJs:
angular.element('#radioButton').trigger('click')
我同意@annakata 的观点,这个问题需要进一步澄清,但这里有一个非常非常基本的示例,说明如何onclick
为单选按钮设置事件处理程序:
<html>
<head>
<script type="text/javascript">
window.onload = function() {
var ex1 = document.getElementById('example1');
var ex2 = document.getElementById('example2');
var ex3 = document.getElementById('example3');
ex1.onclick = handler;
ex2.onclick = handler;
ex3.onclick = handler;
}
function handler() {
alert('clicked');
}
</script>
</head>
<body>
<input type="radio" name="example1" id="example1" value="Example 1" />
<label for="example1">Example 1</label>
<input type="radio" name="example2" id="example2" value="Example 2" />
<label for="example1">Example 2</label>
<input type="radio" name="example3" id="example3" value="Example 3" />
<label for="example1">Example 3</label>
</body>
</html>
这里的问题是 RadioButtonList 的呈现将单个单选按钮 (ListItems) 包装在跨度标记中,即使您直接使用属性将客户端事件处理程序分配给列表项,它也会将事件分配给跨度。将事件分配给 RadioButtonList 会将其分配给它所呈现的表。
这里的技巧是在 aspx 页面上添加 ListItems,而不是从后面的代码中添加。然后,您可以将 JavaScript 函数分配给 onClick 属性。这篇博文;Juri Strumpflohner 将客户端事件处理程序附加到单选按钮列表说明了这一切。
这仅在您事先知道 ListItems 时才有效,并且无助于需要使用后面的代码动态添加 RadioButtonList 中的项目的位置。
Hi, I think all of the above might work. In case what you need is simple, I used:
<body>
<div class="radio-buttons-choice" id="container-3-radio-buttons-choice">
<input type="radio" name="one" id="one-variable-equations" onclick="checkRadio(name)"><label>Only one</label><br>
<input type="radio" name="multiple" id="multiple-variable-equations" onclick="checkRadio(name)"><label>I have multiple</label>
</div>
<script>
function checkRadio(name) {
if(name == "one"){
console.log("Choice: ", name);
document.getElementById("one-variable-equations").checked = true;
document.getElementById("multiple-variable-equations").checked = false;
} else if (name == "multiple"){
console.log("Choice: ", name);
document.getElementById("multiple-variable-equations").checked = true;
document.getElementById("one-variable-equations").checked = false;
}
}
</script>
</body>
尝试以下解决方案
HTML:
<div id="variant">
<label><input type="radio" name="toggle" class="radio" value="19,99€"><span>A</span></label>
<label><input type="radio" name="toggle" class="radio" value="<<<"><span>B</span></label>
<label><input type="radio" name="toggle" class="radio" value="xxx"><span>C</span></label>
<p id="price"></p>
JS:
$(document).ready(function () {
$('.radio').click(function () {
document.getElementById('price').innerHTML = $(this).val();
});
});
其他答案对我不起作用,所以我查看了Telerik 的官方文档,它说您需要找到按钮并调用该click()
函数:
function KeyPressed(sender, eventArgs) {
var button = $find("<%= RadButton1.ClientID %>");
button.click();
}