2016-04-13 3 views
0

У меня есть текстовые поля, которые я хочу отключить в конкретном сценарии. Я сделал это с помощью JQuery, как:disabled = "disabled" атрибут не отключает текстовое поле в IE10

if (eligible) { 
        $(".email-address-field").removeAttr('disabled'); 
       } 
       else{ 
        $(".email-address-field").prop("disabled", true); 
       } 

Thsi отлично работает на всех браузерах, кроме IE10 V, где я могу редактировать отключенные текстовые поля, как: enter image description here

Вот что мой код выглядит, когда я осмотреть это текстовое поле:

<input class="email-address-field" disabled="" type="text" value="[email protected]"/> 

Примечание: Я также попытался использовать следующие вещи, но без успеха:

$(".email-address-field").prop("disabled", "disabled"); 
$(".email-address-field").attr("disabled", "disabled"); 

Может ли кто-нибудь помочь мне понять, что вызывает эту проблему, или если есть какое-либо обходное решение для этого? Заранее спасибо!

+0

Отсутствует поле «адрес-адрес-класс» класса из вашей разметки ввода. Следовательно, ваш селектор не нашел бы ничего для отключения. Вы уверены, что это работает в других браузерах? – DinoMyte

+0

@ DinoMyte, он есть. Я случайно удалил его, а потом его убрал. –

ответ

1

Для ввода «отключений» используйте атрибут readonly.

$(".email-address-field").prop("readonly", true);

использование prop() применять атрибут (не attr()), и removeProp(), чтобы удалить его.

+0

Спасибо @jzm, который работал как шарм. Еще один вопрос: атрибут readonly позволяет сосредоточиться на текстовом поле, хотя ничего не редактируется. Есть ли способ не позволять сосредоточиться на текстовом поле? –

+0

@CodeKaro Попробуйте установить как 'disabled', так и' readonly', чтобы получить это. Я подозреваю, что это может не работать в IE. – Barmar

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