на jQuery.prop ("отключено", false) не работает в Chrome

возникли проблемы .prop ("disabled", false) отлично работает в opera и firefox, но IE и chrome я не могу заставить его работать..

на самом деле это форма invination и им сделать кнопку Отправить такой

<input id="sendInvite" class="mail_send" disabled="disabled" type="button" name="invite" value="Send">

а вот css

.mail_send[disabled="disabled"] {background-color:#343434; color:#747474}

Так как вы можете видеть, что кнопка отключена, и вы не можете нажать, вы должны сначала написать свое имя и почту после того, как эта кнопка отключена, и вы можете отправить почту. Для этого im напишите код здесь есть: http://pastebin.com/8u23G90b

но здесь что-то не так, в chrome и IE отключены никогда не удаляются из кнопки, im также загружает jquery 1.7.1

p.s извините за мой английский

5 ответов


удалить атрибут:

$('button').removeAttr("disabled");

посмотреть .removeAttr() для более подробной информации


ваша проблема не с JQuery, а с вашими селекторами CSS. Инвалиды атрибут ссылается на значение по умолчанию при первой загрузке страницы, а не на то, действительно ли элемент отключен или нет.

селектор CSS, который вы хотите, это :селектор отключен:

.mail_send:disabled {background-color:#343434; color:#747474}

вы можете увидеть пример с этот jsfiddle.


Я столкнулся с аналогичной проблемой, где я использовал .prop ("отключено", false) для удаления отключено от кнопки "Сохранить". Инвалид был назначен через .prop ("отключено", true).

но подождите, кто что-при попытке удалить это свойство (которое будет отображаться как отключено в теге html) я обнаружил, что оно выводится как class="disabled"!

для этого я использовал .removeClass('отключен') Все, что я пытаюсь сказать, это если все пойдет не так, как ты думаешь. они должны убедиться, что их первоначальный результат-это то, что вы ожидаете.



попробуйте написать так:

$('myButton').prop("disabled", "");

просто используйте кнопку и live:

<button class="sendm">Send Email</button>

$(".sendm").live("click", function(e){
   var field1 = $("").val();
   var field2 = $("").val();

   if(field1 === "" || field2 === "" ){
    /// fake checker, you make this more robust etc
     return false;  // maybe do an alert here
   } else {
      //post form data and get json response
   }

});

 $(document).ready(function(){ $(".sendm").button(); });