ajax 成功后如何屏蔽文本框

how to mask textbox after ajax success

我在检查它是否有价值后从数据库返回值。如果它有值,它将显示在我的文本框中。但我希望它以 (000-000-000-000) 的格式被屏蔽,显然,它不起作用。但是在正常输入的情况下,面具工作得很好。只是成功之后,就不行了。任何帮助都会很好。

我的代码:

//..start of ajax code....
success: function(result) {
  console.log(result);
  if (result != "") {
    $("#tin").mask("000-000-000-000");
    $("#tin").val(result);
  }
}

遮罩插件在键入时格式化输入文本(正好是 oninput 事件)

使用 ajax 设置值后,格式将不会应用于最后一个(因为 onchange 事件不是 oninput )。

因此,要解决此问题,只需在使用 jQuery trigger() 函数设置值后触发输入事件。

如下所示:

success: function(result) {
  console.log(result);
  if (result != "") {
    $("#tin").unmask().mask("000-000-000-000");
    $("#tin").val(result).trigger("input");;
  }
}

您可以在此处查看示例 Fiddle 示例 Link to fiddle