PrototypeJS - 克隆输入,保留复选框甚至在Firefox中的removeAttribute之后

时间:2011-09-21 18:25:00

标签: javascript html prototypejs

我正在克隆一行,更改元素中的一些内容,然后将元素输出到页面。问题是,当我删除已检查的属性时,它在IE中工作正常,但FF保留已克隆的原始元素的已检查状态。

例如:

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由于某种原因记得该值,我不知道如何覆盖此行为。

1 个答案:

答案 0 :(得分:0)

尝试使用复选框DOM属性:s.checked = false; s.defaultChecked = false;,或者,不是删除checked属性,而是将其值设置为false:s.writeAttribute('checked', 'false');

顺便提一下,一旦使用原型函数扩展了一个元素,就不需要在其上重复调用$();这只会浪费CPU时间。