作者arliang (arliang)
看板Ajax
標題[問題] 在ie6上使用jQuery控制DOM有bug,該如何解?
時間Wed Oct 6 21:43:02 2010
嚴格說起來是"生成"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)
1F:→ tn801534:true不要""看看? 10/06 22:19
2F:→ tn801534:其實照標準這樣最好).attr('checked', 'checked') 10/06 22:22
3F:推 s25g5d4:checked: checked 10/06 22:35
4F:→ TonyQ:attr checked checked 10/07 03:11
5F:→ TonyQ:這其實不是bug,而是對標準的誤解... 10/07 03:11
剛剛試過了,改成attr checked: 'checked' 或是attr 'checked','checked'
都不行。還是不會打勾
※ 編輯: arliang 來自: 59.120.175.188 (10/11 16:47)
6F:→ mesak:'checked',true 10/11 17:42
7F:→ mesak:你的input 為什麼要有關閉標籤? 10/11 17:43
8F:→ mesak:<input type="checkbox" value="0"/> 10/11 17:44
9F:→ TonyQ:是我弄錯了,你有兩個選擇 , 1.先append 再attr checked 10/11 22:38
10F:→ TonyQ:2.在給 input type="checkbox" 時就給 checked='checked' 10/11 22:38
12F:→ TonyQ:i check both on ie6 , it wouble be working :~ 10/11 22:39