4

我有正在调用onblur各个输入字段的验证功能。同时我用一个说validateall()函数调用相同的验证函数,并且validateall()正在被调用onsubmit。现在的问题是,如果发生了一些错误,我已经纠正了它并提交了当时onblur正在调用的表单,这阻止了调用onsubmit事件。这个问题我只在 Firefox 中遇到。

javascript:

function validateFormOnSubmit(theForm) 
{
vUsername(theForm.userName,document.getElementById('UError'));//this will return true or false depends on error occurrence. 
}

html:

<form name="form" onsubmit="return validateFormOnSubmit(this);">
<input type="text" id="userName" onblur="vUsername(this,UError);">

//UError 是 div id,我将在其中打印错误消息。

4

2 回答 2

1

对 onBlur 使用 delay() 函数或 setTimeOut() 函数。

这个链接也可以帮助你.. jQuery 验证 onblur

于 2013-02-07T11:35:30.673 回答
0

将 setTimeout 函数添加到您的 onBlur 事件。要移交您的参数,您必须使用匿名函数:

<input type="text" id="userName" onblur="setTimeout(function(){ vUsername(this,UError) }, 200);">

现在您的提交事件应该比 onBlur 更快:-)

于 2013-02-07T11:31:03.520 回答