<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>checkbox</title>
<script src="jquery.js"></script>
</head>
<body>
<form action="#" id="form">
<input type="checkbox" name="city" value="南京">南京
<input type="checkbox" name="city" value="北京">北京
<input type="checkbox" name="city" value="纽约">纽约
<input type="checkbox" name="city" value="其他" id="other" οnclick="change()">其他
<input type="text" style="display: none" id="txt">
</form>
<script>
// jQuery
// $(function () {
// $("#other").click(function () {
// if($(this).attr("checked")){
// $("#txt").css("display","block")
// }else {
// $("#txt").css("display","none")
// }
// })
// })
// 原生JS
function change() {
var other = document.getElementById("other");
var txt = document.getElementById("txt");
if (other.checked == true) {
txt.style.display = "block";
}else{
txt.style.display = "none";
}
}
</script>
</body>
</html>
如果用js改变checkbox的值,onchange不会被触发。
事件一般是监听用户的动作,用js改不属于用户动作。
另:document.getElementById("otherRoute").checked=true;
都在js改变checkbox的值了,在这句的后面就执行onchange方法的内容不就行了,就酱