Jquery取頁面所有input的問題


今天發現個問題,百思不得其解,特來請教各路大神,廢話不說,先貼代碼

jQuery(document).ready(function () {
            if(<%=!RoleDAO.getInstance().isHaveSubModule(currentUser.getRoleIds(), 141903)%> &&
             <%=RoleDAO.getInstance().isHaveSubModule(currentUser.getRoleIds(), 141900)%>){
             $("input").attr("disabled", true);
             $("select").attr("disabled", true);
             $("#isForceCheck").attr("disabled",false);
             $("#installSite").attr("disabled",false);
             $("#measurePoint").attr("disabled",false);
             $("#mdCdepartType").attr("disabled",false);
             $("#equipTypeCode").attr("disabled",false);
             $("#mdManageType").attr("disabled",false);
             $("#checkMonthNum").attr("disabled",false);
            }
        });
...............
            function save() {
                var res = valid();
                if (!res) {
                    return;
                }
                if (confirm("確認保存?")) {
                    jQuery("#action").val("save");
                    $("input").attr("disabled", false);
                    $("select").attr("disabled", false);
                    document.forms[0].submit();
                }
            }


在ie下,不添加兼容性視圖

但是添加了兼容性視圖就如下:


F12調試如下:

10 个解决方案

#1


兼容模式中不能用jquery2.0以后的版本
換個jquery1.x版本試試

#2


引用
兼容模式中不能用jquery2.0以后的版本
換個jquery1.x版本試試

已經測試了一下,並不可以解決

#3


引用 2 樓 qq_24066245 的回復:
引用
兼容模式中不能用jquery2.0以后的版本
換個jquery1.x版本試試

已經測試了一下,並不可以解決

你自己看你的圖片 上面有個jquery.js的引用沒刪掉

#4


使用prop()方法 不要使用attr()方法,attr()存在不同版本的兼容性問題

#5


引用
你自己看你的圖片 上面有個jquery.js的引用沒刪掉

試了一下,還是沒用

#6


引用
使用prop()方法 不要使用attr()方法,attr()存在不同版本的兼容性問題

只用prop(),在不添加兼容視圖的時候都沒用;
然后我attr()、prop()都用上,在不添加兼容視圖的時候可用,但是不可控制打開我要讓他編輯的項,在添加兼容視圖后,還是一樣沒作用

#7


引用 5 樓 qq_24066245 的回復:
引用
你自己看你的圖片 上面有個jquery.js的引用沒刪掉

試了一下,還是沒用

$("input")改成jQuery("input")呢

#8


引用 5 樓 qq_24066245 的回復:
引用
你自己看你的圖片 上面有個jquery.js的引用沒刪掉

試了一下,還是沒用

或者改成$(":input")呢

#9


結貼了,已經可以用了,感謝大家的幫助,下面貼出我的解決方案:
問題:


attr()和prop()都提示獲取不到元素,難道是我使用姿勢不對?
無奈之下,不玩jqure了,用low點的辦法試試:

jQuery(document).ready(function () {
            if(<%=!RoleDAO.getInstance().isHaveSubModule(currentUser.getRoleIds(), 141903)%> &&
             <%=RoleDAO.getInstance().isHaveSubModule(currentUser.getRoleIds(), 141900)%>){
             var input = document.getElementsByTagName('input');
             for (var i = 0; i < input.length; i++) {
             input[i].disabled=true;
             }
             var select = document.getElementsByTagName('select');
             for (var i = 0; i < select.length; i++) {
             select[i].disabled=true;
             }
             document.getElementById("isForceCheck").disabled = false;
             document.getElementById("installSite").disabled = false;
             document.getElementById("measurePoint").disabled = false;
             document.getElementById("mdCdepartType").disabled = false;
             document.getElementById("equipTypeCode").disabled = false;
             document.getElementById("mdManageType").disabled = false;
             document.getElementById("checkMonthNum").disabled = false;
            }
        });
            /**
             * 保存
             */
            function save() {
                var res = valid();
                if (!res) {
                    return;
                }
                if (confirm("確認保存?")) {
                    jQuery("#action").val("save");
     var input = document.getElementsByTagName('input');
                 for (var i = 0; i < input.length; i++) {
                 input[i].disabled=false;
                 }
                 var select = document.getElementsByTagName('select');
                 for (var i = 0; i < select.length; i++) {
                 select[i].disabled=false;
                 }
                    document.forms[0].submit();
                }
            }

代碼加長了幾乎2/3,但是測試通過:

綠色無公害,營養好吸收

#10


引用
$("input")改成jQuery("input")呢

感謝@u011376884,你的這個也應該有用,我再去簡化下代碼試試

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com