2011-09-21 29 views
0

我在克隆一行,更改元素中的某些內容,然後將元素輸出到頁面。問題是,當我刪除選中的屬性時,它在IE中正常工作,但FF保留了被克隆的原始元素的選中狀態。PrototypeJS - 克隆輸入,即使在Firefox中刪除屬性後仍保留複選框

例如:

var newHTML = $$('.importRow')[0].clone(true); 
$(newHTML).select('input').each(function(s, index) { 
    $(s).removeAttribute('checked'); //This is to remove any checked value 
    if ($(s).hasClassName('someClass') && $(s).getValue() == 'someValue'){ //This is to assign a new default checked value 
     $(s).setAttribute('checked','checked'); 
    } 
} 
$(this).up().insert({ 
    before: newHTML 
}); 

如何我會解決這個問題,使FF不能保持以前選擇的值?

編輯:

回到它正確地顯示它的元素,但Firefox會記住值因爲某些原因,我不知道如何重寫此行爲。

回答

0

嘗試使用複選框DOM屬性:s.checked = false; s.defaultChecked = false;,或者可替換地,代替除去checked屬性,其值設置爲false:s.writeAttribute('checked', 'false');

順便提及,一旦元件已經擴展與原型的功能,你不t需要反覆調用$();這隻會浪費CPU時間。

+0

謝謝,但沒有運氣。即使對於文本輸入,執行s.setAttribute('value','')也不起作用。添加Firefox後我必須這樣做。 – fanfavorite

+0

即使之後不起作用。 – fanfavorite

+0

使用DOM屬性的作品。對於輸入必須使用s.value =「」。 – fanfavorite

相關問題