setTimeout函数可以在它执行的代码前面触发吗?

时间:2015-04-08 15:31:26

标签: javascript jquery

所以基本上我想在使用以下代码将它们提交到服务器之前格式化一些电话号码。我正在提交家庭电话和工作电话,两种输入都带有一类电话。

注意:我使用setTimeout,因为我正在显示一个ajax加载器,给人的印象是工作正在进行中。

submitHandler: function(form){
  //Fires if validator plugin finds no errors
  //Cleanup Phone Numbers - Should receive phone numbers like (xxx) xxx-xxxx
  $("input.phone").each(function(){
    this.value = this.value.replace(/\D/g,"").replace(/(\d{3})(\d{3})(\d{4})/, "$1-$2-$3");
  });

  setTimeout(function(){
    form.submit();
  }, 2500);
}

jsFiddle

为什么我有时既没有家用电话也没有工作电话格式正确,有时两者都是正确的格式化程序,或者只有家用电话格式正确?

在我失败的两个特定情况下,我收到了xxxxxxxxxx格式的数字,这让我相信第二个替换不会一直有效或者表单提交之前第二个替换可能会触发一些实例

1 个答案:

答案 0 :(得分:-1)

您可以使用focusOut / focusIn,例如

$("input.phone").focusOut(function(){
    alert('using ALERT Just for checking flow');
});