關於inerHTML input value無效的問題

原來在IE下面,手改文本框的值,innerHTML是可以體現出來的,但IE9,EI10,之後就不會體現了.

因爲在標準模式下,<input id="22" value="2">  同  aa.value是不一樣的,一個算是attributes屬性,一個是表單元素的JS屬性,這個在早期的IE是通用的,可是w3c是不通用的

你修改了aa.value 不代表你的aa.attributes["value"]也改了,而innerHTML 只能輸出attributes屬性

所以,對於文件框來說,你要

 var teminputs= $("#consignConContent").find("input[type=text]");
            teminputs.each(function () {
                this.setAttribute("value",this.value);
            });

這還沒完,如果是select 

  var temoption = $("#consignConContent").find("option");
            temoption.each(function () {
                if (this.selected) {
                    this.setAttribute("selected", this.selected);
                }
            });

select的option很奇怪,如果你給一個option賦值,會重置所有option的值,比如你給第一個option賦上selected=false,那其它的option也會重置成false,所以你只要賦值給選中的的option就行了


這還沒完,下面是radio

  var temradio = $("#consignConContent").find("input[type=radio]");
            temradio.each(function () {
                if (this.checked) {
                    this.setAttribute("checked", this.checked);
                }
                else {
                    this.removeAttribute("checked");
                }
            });

radio 你必須清除沒選中的項的checked屬性,不能設置爲false,因爲你設置了checked,不管是true 還是 false,都是true,最後一個有效.

發佈了295 篇原創文章 · 獲贊 2 · 訪問量 52萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章