[問題] 在ie6上使用jQuery控制DOM有bug,該如꘠…

看板Ajax作者 (arliang)時間15年前 (2010/10/06 21:43), 編輯推噓1(1011)
留言12則, 4人參與, 最新討論串1/1
嚴格說起來是"生成"CheckBox,然後設定checked=true。 在IE8及FF都沒有問題,很不幸客戶用IE6 checkFlag 、 //以下為jQuery語法. ........ //清除feeDetailTable. jQuery("#feeDetailTable TR[id!=feeDetailTitle] ").remove(); //增加資料. for(var ii=0;ii<feeSeq.length;ii++){ var row = (ii%2==0?jQuery('<tr></tr>').addClass('TableTd1'): jQuery('<tr></tr>').addClass('TableTd2')); var col1 = jQuery('<td></td>').attr({width : '30' , align : 'center' }); var col2 = jQuery('<td></td>').attr({width : '50' , align : 'left' }); var col3 = jQuery('<td></td>').attr({width : '400' , align : 'left' }); var col4 = jQuery('<td></td>').attr({align : 'left' }); var input = jQuery('<input>').attr({align : 'left' , type : 'text' , name : 'fcsmFeeDetailVO.feeAmt' , value : feeAmt[ii] }) .addClass('Form1') .blur(function(){reComputeFee();}); if ( checkFlag[ii] == 'y' || checkFlag[ii] == 'Y' || checkFlag[ii] == 'true' || checkFlag[ii] == 'TRUE'){ jQuery(col1).append(jQuery('<input type="checkbox"></input>') .attr({ name : 'fcsmFeeDetailVO.checkFlag' , checked : 'true' , ~~~~~~~~~~~~~~~~~~~~~ 重點只有這一行,col1裡的CheckBox不能設為打勾狀態 value : feeAmt[ii]}) .addClass('Form1') .click(function(){reComputeFee(this);})); }else jQuery(col1).append(jQuery('<input type="checkbox"></input>') .attr({name : 'fcsmFeeDetailVO.checkFlag' , value : feeAmt[ii] }) .addClass('Form1') .click(function(){reComputeFee(this);})); jQuery(col2).text(feeType[ii]).attr('name' , 'fcsmFeeDetailVO.feeType'); jQuery(col3).text(feeTypeName[ii]).attr('name' , 'fcsmFeeDetailVO.feeTypeName'); jQuery(col4).prepend(input); jQuery(row).append(col1).append(col2).append(col3).append(col4); jQuery("#feeDetailTable").append(row); } } 當程式跑玩,畫面上的CheckBox並不如預期那樣打勾。 爬文後有高手說是IE6在DOM的操弄術有Bug 最好的解法是用setTimeout, 請問萬能的鄉民,還有其他的解法嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.175.188 ※ 編輯: arliang 來自: 59.120.175.188 (10/06 21:49) ※ 編輯: arliang 來自: 59.120.175.188 (10/06 21:52)

10/06 22:19, , 1F
true不要""看看?
10/06 22:19, 1F

10/06 22:22, , 2F
其實照標準這樣最好).attr('checked', 'checked')
10/06 22:22, 2F

10/06 22:35, , 3F
checked: checked
10/06 22:35, 3F

10/07 03:11, , 4F
attr checked checked
10/07 03:11, 4F

10/07 03:11, , 5F
這其實不是bug,而是對標準的誤解...
10/07 03:11, 5F
剛剛試過了,改成attr checked: 'checked' 或是attr 'checked','checked' 都不行。還是不會打勾 ※ 編輯: arliang 來自: 59.120.175.188 (10/11 16:47)

10/11 17:42, , 6F
'checked',true
10/11 17:42, 6F

10/11 17:43, , 7F
你的input 為什麼要有關閉標籤?
10/11 17:43, 7F

10/11 17:44, , 8F
<input type="checkbox" value="0"/>
10/11 17:44, 8F

10/11 22:38, , 9F
是我弄錯了,你有兩個選擇 , 1.先append 再attr checked
10/11 22:38, 9F

10/11 22:38, , 10F
2.在給 input type="checkbox" 時就給 checked='checked'
10/11 22:38, 10F

10/11 22:39, , 11F
就像這個example http://jsfiddle.net/JUuJq/2/
10/11 22:39, 11F

10/11 22:39, , 12F
i check both on ie6 , it wouble be working :~
10/11 22:39, 12F
文章代碼(AID): #1Ch7pecc (Ajax)
文章代碼(AID): #1Ch7pecc (Ajax)