我已经制作了一个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");
}
答案 0 :(得分:2)
使用javascript更改字段时,它不会自动触发更改事件。使用jQuery,您可以使用$ elem.change()
触发更改答案 1 :(得分:2)
这就是它的工作方式,但是当您通过JS设置值时,您可以自己触发更改事件:
$("#estado").val(unescape(resultadoCEP["uf"])).trigger('change');
答案 2 :(得分:2)
您可以在输入上触发更改,以便调用您的函数:
$("#estado").val(unescape(resultadoCEP["uf"])).trigger("change");
更多信息: