Javascript PrototypeJS-克隆输入,即使在Firefox中删除属性后仍保留复选框
我正在克隆一行,更改元素中的某些内容,然后将元素输出到页面。问题是,当我删除选中的属性时,它在IE中工作正常,但FF保留了克隆的原始元素的选中状态 例如:Javascript PrototypeJS-克隆输入,即使在Firefox中删除属性后仍保留复选框,javascript,html,prototypejs,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 va
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会因为某种原因记住该值,我不知道如何重写该行为 尝试使用复选框DOM attributes:s.checked=false;s、 defaultChecked=false;,或者,不删除checked属性,而是将其值设置为false:s.writeAttribute'checked','false'
顺便说一句,一旦一个元素用原型函数进行了扩展,您就不需要对它重复调用$;这只会浪费CPU时间。谢谢,但运气不好。即使对于文本输入,执行s.setAttribute'value'也不起作用。在Firefox中添加了DOM属性之后,我必须这样做。对于输入,必须使用s.value=。