Javascript .on("изменить" работает только при изменении вручную [jsFiddle]

Я сделал jsFiddle со всеми данными и информацией о проблеме. Я думаю, что там легче понять, что происходит:

Пожалуйста, взгляните:

http://jsfiddle.net/lukinhasb/GuZq2/

$("#estado").val(unescape(resultadoCEP["uf"]));

Маска изменяется только при ручном выборе опции. Когда javascript увеличивает поле с теми же данными, он не меняет маску.

    $("#estado").on("change", function() {
         if ($(this).val() == 'SP') {
             $("#celular_pessoa_fisica").mask("(99) 99999-9999");
                 } else {
             $("#celular_pessoa_fisica").mask("(99) 9999-9999");
             }

3 ответа

Решение

Вот как это должно работать, но вы можете инициировать событие изменения самостоятельно, когда устанавливаете значение через JS:

$("#estado").val(unescape(resultadoCEP["uf"])).trigger('change');

Вы можете инициировать изменение на входе, так что ваша функция вызывается:

$("#estado").val(unescape(resultadoCEP["uf"])).trigger("change");

Дополнительная информация:

  1. JQuery Trigger

Когда вы изменяете поле с помощью javascript, оно не будет вызывать событие изменения автоматически. С помощью jQuery вы можете инициировать изменения с помощью $elem.change()

Другие вопросы по тегам