为什么jquery在刷新时显示'disabled'属性存在

时间:2013-10-10 21:28:44

标签: javascript jquery

我有<input type = 'file'>。要启用/禁用它,我使用jQuery("#my_input").prop('disabled' ,true/false)

如果我禁用它,然后刷新页面,jQuery输出:

console.log(jQuery("#my_input").prop('disabled' )) ==> true 

即使html中包含的“禁用”道具。

清除缓存无法解决问题。

2 个答案:

答案 0 :(得分:4)

Firefox长期以来一直通过刷新保存输入值,现在最新的版本还通过刷新保存了input / button的禁用状态。

我不确定这是故意还是错误,但暂时解决方法是在DOM就绪处理程序中将输入“disabled状态设置为默认状态。”

jQuery(function($) {
    $("#my_input").prop('disabled', false);
});

演示问题:Fiddle(使用Firefox打开)
现在使用上面的代码段修复:Fiddle


您也可以将autocomplete="off"应用于该元素,其禁用状态将不会通过刷新保留。

Fiddle

请注意,这将阻止元素中的任何形式的自动完成。当然,这是文件输入和按钮的绝佳解决方案,但是根据您的使用情况(例如,当涉及文本输入时),您可能更喜欢前一种解决方案。感谢@dsdsdsdsd提示!


P.S。已经向Mozilla报告过:Bugzilla ticket

答案 1 :(得分:0)

Firefox也应该在html中包含它。

使用时会发生什么:

jQuery("#my_input").attr('disabled' ,true)