我遇到了奇怪的问题。虽然用户更改表单上的复选框输入元素会产生足够的事件,但编程更改不会。我该如何面对这个挑战?代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.js"></script>
<script type="text/javascript">
jQuery(document).ready(
function() {
jQuery("#cb").change(
function() {
alert("Changed!");
return true;
}
);
jQuery("#b").click(
function() {
var newState = !jQuery("#cb").attr('checked');
jQuery("#cb").attr('checked', newState);
});
});
</script>
</head>
<body>
<form action="#">
<p>
<input type="button" id="b" />
<input type="checkbox" id="cb" />
</p>
</form>
</body>
</html>
更新 我不控制元素变化,我只需要处理它们。这是我编写的通用代码。
最佳答案
使用触发函数触发复选框上的点击事件。您无需获取现有状态,因为只需单击即可切换复选框。
jQuery("#cb").trigger('click');
关于javascript - 如何处理 javascript 中输入元素状态的编程更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/400181/