2

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

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

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

即使 'disabled' 道具包含在 html 中。

清除缓存并不能解决问题。

4

2 回答 2

4

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

我不确定这是有意的还是错误的,但目前一种解决方法是将输入的disabled状态设置为它们在 DOM 就绪处理程序中的默认状态。

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

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


您还可以应用autocomplete="off"到元素,并且其禁用状态不会在刷新后持续存在。

小提琴

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


ps 这已经向 Mozilla 报告:Bugzilla ticket

于 2013-10-10T21:34:03.933 回答
0

Firefox 也应该将它包含在 html 中。

如果你使用会发生什么:

jQuery("#my_input").attr('disabled' ,true)
于 2013-10-10T21:38:23.077 回答