1
所以基本上我试图格式化一些电话号码,然后使用下面的代码将它们提交给服务器。我正在提交家庭电话和工作电话,这两种输入都带有一类电话。setTimeout函数可以在代码执行之前触发吗?
注意:我使用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);
}
为什么,我有时没有家庭电话和工作电话的格式正确,有时两者都正确格式化程序,或仅是正确格式化家里的电话?
在我失败的两个特定情况下,我收到了xxxxxxxxxx格式的数字,这导致我相信第二个替换并不总是有效,或者在第二个替换可能在某些情况下触发之前提交表单。
你格式化代码将在'form.submit()',会不会是格式化失败之前始终运行? –
“我使用setTimeout,因为我正在显示一个ajax加载程序给人一种工作正在进行的印象。” - 另外,在未来的版本中,您可以将其削减到1250毫秒,并获得50%的性能提升! –
我认为这不是一个好的做法。在格式化完成后,在提交时调用格式函数并从电话号码格式函数中提交表单 –