2013-10-10 2 views
2

У меня есть <input type = 'file'>. Чтобы включить/отключить его, я использую jQuery("#my_input").prop('disabled' ,true/false).Почему jquery показывает, что свойство «disabled» существует, когда я обновляю

Если отключить его, а затем обновите страницу, Jquery выходы:

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

даже несмотря на то, «инвалиды» ​​реквизит не включены в HTML.

Очистка кеша не исправлена.

+0

Либо у вас есть какой-то другой код, который переключает его, или вы используете Firefox. –

+2

Пожалуйста, разместите html для этого, что-то еще должно его отключить! –

+0

@ FabrícioMatté ... firefox, да. – dsdsdsdsd

ответ

4

Firefox уже давно сохраняет значения ввода через обновления, и теперь последние сборки также сохраняют статус отключенного статуса input/button с помощью обновлений.

Я не уверен, было ли это предназначено или ошибка, но пока что обходным путем является просто установить входы disabled в их по умолчанию внутри обработчика DOM.

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

Демонстрируя вопрос: Fiddle (открытый с Firefox)
И теперь, закрепленную во фрагменте кода выше: Fiddle


Вы также можете применить autocomplete="off" к элементу и его статус инвалида не будет сохраняются через обновления.

Fiddle

Обратите внимание, что это позволит предотвратить любые формы автоматического заполнения в элементе. Конечно, это отличное решение для ввода файлов и кнопок, однако в зависимости от вашего варианта использования (например, когда речь идет о текстовых вводах) вы можете предпочесть первое решение. Спасибо @dsdsdsds за подсказку!


p.s. Об этом сообщается в Mozilla уже: Bugzilla ticket.

+0

Хорошая информация. Моя скрипка прекрасно работает, звучит так, как ваш ответ хорош! http://jsfiddle.net/yNH6M/ –

+1

«Firefox уже давно сохраняет значения ввода через обновления» привело меня к этому: [SO] (http: // stackoverflow.com/questions/4263536/firefox-cache-textarea-value), в котором есть решение, которое сработало: '

' – dsdsdsdsd

+0

@dsdsdsdsd да приятно отметить, что, хотя 'autocomplete =" off "' полностью отключает автозаполнение право? Это не очень хорошо работает для всех случаев использования, но да, это убивает сохранение после обновления значений. –

0

Firefox также должен включать его в html.

Что произойдет, если вы используете:

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

'.prop()' является правильным аксессуаром для 'disabled' – Plato

+0

Да, это правда. – edwardbrosens

Смежные вопросы