Функция не работает на jQuery 1.6.x (но работает на 1.5.x) - PullRequest
1 голос
/ 10 сентября 2011

Это работает в 1.5.2, но не в 1.6.2. Кнопка не будет включена. Я думаю, что это должно быть с .attr

Как я могу это исправить?

function checkMessageForm() {
    var message_chars = $("#form_dm_text").val().length;
    console.log(message_chars);
    if (message_chars > 0 && message_chars < 14001) $("#form_dm_submit").attr("disabled", "");
    else
    $("#form_dm_submit").attr("disabled", "disabled");
}

Спасибо!

Ответы [ 3 ]

4 голосов
/ 10 сентября 2011

Вы должны удалить атрибут disabled:

$("#form_dm_submit").removeAttr("disabled");

Вы можете увидеть эффект removeAttr('disabled') против attr('disabled', '') здесь:

http://jsfiddle.net/ambiguous/JMvKr/

2 голосов
/ 10 сентября 2011

Вместо .attr("disabled", ""), попробуйте .removeAttr("disabled")?

0 голосов
/ 27 сентября 2011

Мне нравится использовать решение .prop (propertyName, value) . В основном это просто еще один вариант, который здесь не упоминался.

function checkMessageForm() {
    var message_chars = $("#form_dm_text").val().length;
    console.log(message_chars);
    var disable = message_chars > 0 && message_chars < 14001;
    $("#form_dm_submit").prop("disabled", disable);
}

attr() также принимает значение true и false в качестве значения для включения / выключения.

...