日期:2014-05-17  浏览次数:20730 次

propertychange 不管用了。。


//开始时间
$("#D_CUST_SDATE").live("focus",function(){
//alert("232");
document.getElementById("D_CUST_SDATETip").innerHTML="请选择";
document.getElementById("D_CUST_SDATETip").className="onFocus";
})
$("#D_CUST_SDATE").live("blur",function(){alert($(this).val());
if($(this).val()){
chk_onCorrect_class("D_CUST_SDATE");
}
else{
document.getElementById("D_CUST_SDATETip").innerHTML="????";
document.getElementById("D_CUST_SDATETip").className="onError";
}
})
$("#D_CUST_SDATE").bind("propertychange",function(){alert(4545);
if($(this).val()){
    chk_onCorrect_class("D_CUST_SDATE");
}
})
文本框值发生改变是不弹"4545",因为当选完时间,alert的值是空,必须鼠标再在文本框里点一下才有值,可是在其他地方像这样写propertychange能用,这里怎么就不能用了呢,。

------解决方案--------------------
没看明白。。~
------解决方案--------------------
onpropertychange不支持火狐,不知道是否是浏览器兼容的问题,iE应该是没问题,这问题我遇到过。
------解决方案--------------------
应该没问题吧,主要文本框内容变了就是触发onpropertychange事件的,用js设置也会触发

<script type="text/javascript" src="http://www.coding123.net/js/jquery.js"></script>
<input type="text" id="txt" />
<script>
    $(function () {
        $('#txt').bind("propertychange", function () {
        alert(this.value)
            alert(4545);
        })
        setTimeout(function () { $('#txt').val(123); }, 3000);
    });
</script>

------解决方案--------------------
知道了,你那个层是动态创建的,但是绑定事件的代码在页面上导致执行完后层还没弹出

你在弹出层的代码后面执行事件绑定就好了
------解决方案--------------------
楼主认真看下jq的API,live是jQuery 1.3中新增的方法。给所有当前以及将来会匹配的元素绑定一个事件处理函数(比如click事件)。也能绑定自定义事件。
目前支持 click, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyup。 
还不支持 blur, focus, mouseenter, mouseleave, change, submit 
与bind()不同的是,live()一次只能绑定一个事件。

改在弹层代码后执行事件绑定不需要live了,live效率比较低


///弹层代码/////
//开始时间
$("#D_CUST_SDATE").live("focus",function(){
    //alert("232");
    document.getElementById("D_CUST_SDATETip").innerHTML="请选择";
    document.getElementById("D_CUST_SDATETip").className="onFocus";
})
$("#D_CUST_SDATE").live("blur",function(){alert($(this).val());
    if($(this).val()){
    chk_onCorrect_class("D_CUST_SDATE");
    }
    else{
    document.getElementById("D_CUST_SDATETip").innerHTML="????";
    document.getElementById("D_CUST_SDATETip").className="onError";
    }
})
$("#D_CUST_SDATE").bind("propertychange",function(){alert(4545);
if($(this).val()){
    chk_onCorrect_class("D_CUST_SDATE");
    }
})