问题描述
- 【jQuery】【js】复选框只改变checked属性会激发change事件么
-
一个列表里的几行数据,每行数据前都有一个复选框,默认为不选中状态,点击某行的时候会设置当前行前复选框的checked属性为true,但是对应的change事件并不执行,如果直接点击某行的复选框,change事件就执行了,什么原因
解决方案
我的复选框是通过onclick事件处理的,在函数里面去判断checked是true还是false
```
/* 显示时间 */
function showTime() {
var show = document.getElementById("show");
var time = document.getElementById("dateShow");
if (show.checked) {
//alert("checked");
time.style.display = "";
} else {
//alert("un checked");
time.style.display = "none";
}
}
解决方案二:
<input type="checkbox" onclick="javascript:showTime()" id="show" name="show" checked="checked" />
解决方案三:
/* 显示时间 */
function showTime() {
var show = document.getElementById("show");
var time = document.getElementById("dateShow");
if (show.checked) {
//alert("checked");
time.style.display = "";
} else {
//alert("un checked");
time.style.display = "none";
}
}
解决方案四:
/* 显示时间 */
function showTime() {
var show = document.getElementById("show");
var time = document.getElementById("dateShow");
if (show.checked) {
//alert("checked");
time.style.display = "";
} else {
//alert("un checked");
time.style.display = "none";
}
}
解决方案五:
/* 显示时间 */
function showTime() {
var show = document.getElementById("show");
var time = document.getElementById("dateShow");
if (show.checked) {
//alert("checked");
time.style.display = "";
} else {
//alert("un checked");
time.style.display = "none";
}
}
解决方案六:
/* 显示时间 */
function showTime() {
var show = document.getElementById("show");
var time = document.getElementById("dateShow");
if (show.checked) {
//alert("checked");
time.style.display = "";
} else {
//alert("un checked");
time.style.display = "none";
}
}
解决方案七:
点击某行只是把改行的checkbox的checked属性进行了改变,而并没有去执行change事件。你要想实现改变属性后执行change事件,你的用程序进行控制。
解决方案八:
js设置checkbox的勾选是不会触发onchange事件的,你需要用jquery trigger下
$('#xxx').prop('checked',true).trigger('change')
解决方案九:
第一次提问,还没弄懂这个要怎么回复,谢谢大家。 方法我都会试一下,再次感谢~
时间: 2024-11-10 07:31:55