Santiago
Santiago

Reputation: 2455

Function not working on jQuery 1.6.x (but worked on 1.5.x)

This works in 1.5.2, but doesn't on 1.6.2. The button won't get 'enabled'. I think it has to be with the .attr

How could i fix this?

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");
}

Thanks!

Upvotes: 1

Views: 246

Answers (3)

Gordon Tucker
Gordon Tucker

Reputation: 6773

I like to use the .prop(propertyName, value) solution. Mostly it is just another option that wasn't mentioned here.

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() also accepts a true and false as the value to enable/disable.

Upvotes: 0

qingbo
qingbo

Reputation: 2160

Instead of .attr("disabled", ""), try .removeAttr("disabled") ?

Upvotes: 2

mu is too short
mu is too short

Reputation: 434665

You should delete the disabled attribute:

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

You can see the effect of removeAttr('disabled') versus attr('disabled', '') here:

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

Upvotes: 4

Related Questions