复选框onchange功能在IE和Chrome中无法正常工作

时间:2015-08-22 04:18:22

标签: javascript internet-explorer checkbox

我在页面上动态生成了复选框。 我使用onchange函数,它在Firefox中运行良好:

function setActionDate(cb_id,dt_id){
    //alert(cb_id);
    var cbox = document.getElementById(cb_id);
    var ddate= document.getElementById(dt_id);
    alert(cbox.value);
    if (cbox.value == 'Y') {
            ddate.className = "";
            ddate.style.backgroundColor="#ffe6e6";  
            ddate.placeholder = "Select Date";
    } else if (cbox.value == 'N'){
            ddate.value = "";
            ddate.className = "disabled";
            ddate.style.backgroundColor="";
            ddate.placeholder = "";
    }
}

我在这里读到,IE对onchange事件的处理方式不同,最好使用onclick函数。但是我绝对需要使用 oncahnge 功能。 有没有办法解决IE和Chrome的问题?

1 个答案:

答案 0 :(得分:0)

我找到了解决问题的正确方法。 使用setTimeout函数解决了这个问题:

function setActionDate(cb_id,dt_id){
    setTimeout(function() { 
    var cbox = document.getElementById(cb_id);
    var ddate= document.getElementById(dt_id);
    alert(cbox.value);
    if (cbox.value == 'Y') {
            ddate.className = "";
            ddate.style.backgroundColor="#ffe6e6";  
            ddate.placeholder = "Select Date";
    } else if (cbox.value == 'N'){
            ddate.value = "";
            ddate.className = "disabled";
            ddate.style.backgroundColor="";
            ddate.placeholder = "";
    }
  },100);
}