通常都直接檢查有沒有 checked 屬性,範例如下:
$(function() { $("#checkbox").change(changeEventForEnabled); }); function changeEventForEnabled() { if($("#checkbox").attr("checked")) { $("#text").removeAttr("disabled"); } else { $("#text").attr("disabled", true); } }上面的目的是當 id="checkbox" 的元件被點選時,會把 id="text" 的欄位開啟(刪除 disabled 屬性)
反之則是把 id="text" 的欄位關閉(刪除 disabled 屬性)
不過在我們的專案中有發生上面的程式碼在 IE8 會出現剛好相反的事件
也就是原本預期被點選時會開啟欄位、取消點選時關閉欄位
在 IE8 會剛好相反,點選時關閉欄位、取消點選時開啟欄位。
同事是說 spin button 的事件被 plugin 換掉了
所以必須要自己重綁 check 跟 uncheck 的事件。
後來改成以下的寫法就好了:
$(function() { $("#checkbox").bind("check", checkForEnabled); $("#checkbox").bind("uncheck", uncheckForEnabled); }); function checkForEnabled () { $("#text").removeAttr("disabled"); } function uncheckForEnabled () { $("#text").attr("disabled", true); }
沒有留言:
張貼留言