2 izzyii Izzyii 于 2016.03.30 13:28 提问

【jQuery】【js】复选框只改变checked属性会激发change事件么

一个列表里的几行数据,每行数据前都有一个复选框,默认为不选中状态,点击某行的时候会设置当前行前复选框的checked属性为true,但是对应的change事件并不执行,如果直接点击某行的复选框,change事件就执行了,什么原因

9个回答

u012377333
u012377333   Rxr 2016.03.30 13:55

我的复选框是通过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";
}
}


u012377333
u012377333   Rxr 2016.03.30 13:55
<input type="checkbox" onclick="javascript:showTime()" id="show" name="show" checked="checked" />
u012377333
u012377333   Rxr 2016.03.30 13:56
/* 显示时间 */
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";
    }
}
u012377333
u012377333   Rxr 2016.03.30 13:58
/* 显示时间 */
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";
    }
}
u012377333
u012377333   Rxr 2016.03.30 13:59
/* 显示时间 */
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";
    }
}
u012377333
u012377333   Rxr 2016.03.30 13:59
/* 显示时间 */
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";
    }
}
fubo1990
fubo1990   2016.03.30 14:02

点击某行只是把改行的checkbox的checked属性进行了改变,而并没有去执行change事件。你要想实现改变属性后执行change事件,你的用程序进行控制。

showbo
showbo   Ds   Rxr 2016.03.30 14:31

js设置checkbox的勾选是不会触发onchange事件的,你需要用jquery trigger下

 $('#xxx').prop('checked',true).trigger('change')
Izzyii
Izzyii   2016.04.20 09:11

第一次提问,还没弄懂这个要怎么回复,谢谢大家。 方法我都会试一下,再次感谢~

Csdn user default icon
上传中...
上传图片
插入图片