我有这样一种情况,一个类型为radio的元素包含在一个a元素中。anchor元素具有href,但我想通过向元素添加jQuery的“click”处理程序来覆盖该行为。
点击处理程序使其内部的单选按钮成为组内的选定按钮。当单击锚点时,所有这些都有效,但是当单击单选按钮时,似乎jQuery会将所选单选按钮重置为先前选择的单选按钮!
这是一个简化的页面,可复制该问题:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#a1").click(function(event) {
anchorClicked("a1");
return false;
});
$("#a2").click(function(event) {
anchorClicked("a2");
return false;
});
});
function anchorClicked(anchorId) {
$('#' + anchorId + ' input:radio').attr("checked", true);
alert("Look at what is selected and what happens after the event when this dialog is closed!");
}
</script>
</head>
<body>
<form>
<ul>
<li id="li1">
<a id="a1" href="javascript:alert('default functionality')">
<input value="1" name="rb" type="radio" id="rb1">
<span>Details 1</span>
</a>
</li>
<li id="li2">
<a id="a2" href="javascript:alert('default functionality')">
<input value="2" name="rb" type="radio" id="rb2">
<span>Details 2</span>
</a>
</li>
</ul>
</form>
</body>
有没有人知道如何防止jQuery重置单选按钮?
name='somename'
,并使用代码$("input[name='somename']").click(function(event){event.stopPropagation();})
。 - Jishnu A P