我有一个<input type = 'file'>
. 要启用/禁用它,我使用jQuery("#my_input").prop('disabled' ,true/false)
.
如果我禁用它,然后刷新页面,jQuery 输出:
console.log(jQuery("#my_input").prop('disabled' )) ==> true
即使 'disabled' 道具未包含在 html 中。
清除缓存并不能解决问题。
我有一个<input type = 'file'>
. 要启用/禁用它,我使用jQuery("#my_input").prop('disabled' ,true/false)
.
如果我禁用它,然后刷新页面,jQuery 输出:
console.log(jQuery("#my_input").prop('disabled' )) ==> true
即使 'disabled' 道具未包含在 html 中。
清除缓存并不能解决问题。
Firefox 长期以来一直通过刷新保存输入值,现在最新的构建也通过刷新保存input
/button
的禁用状态。
我不确定这是有意的还是错误的,但目前一种解决方法是将输入的disabled
状态设置为它们在 DOM 就绪处理程序中的默认状态。
jQuery(function($) {
$("#my_input").prop('disabled', false);
});
演示问题:Fiddle(使用 Firefox 打开)
现在使用上面的代码段修复:Fiddle
您还可以应用autocomplete="off"
到元素,并且其禁用状态不会在刷新后持续存在。
请注意,这将阻止元素中任何形式的自动完成。当然,这是文件输入和按钮的绝佳解决方案,但是根据您的用例(例如,当涉及文本输入时),您可能更喜欢前一种解决方案。感谢@dsdsdsdsd 的提示!
ps 这已经向 Mozilla 报告:Bugzilla ticket。
Firefox 也应该将它包含在 html 中。
如果你使用会发生什么:
jQuery("#my_input").attr('disabled' ,true)