OnClick事件绕过onBlur事件

时间:2015-03-02 11:11:35

标签: javascript

我的代码依赖于onBlur来验证用户标识,但是如果用户只是输入用户然后直接点击提交按钮,那么onBlur事件就不会被触发。

<td><input type='text' name="USERID" onBlur="doValidateUserID(this)"></td>
<td><input type="button" name="assetSaveButton"  value="Save" onClick="doSomeStuff(this)"></td>

下面是伪ajax调用

function doValidateUserID(userID) { 
// ajax call goes here
}

我的问题是,在用户输入值并单击“提交”按钮后,甚至不会调用doValidateUserID。我尝试使用onChange而不是onBlur但是徒劳无功。

编辑:显然添加警报已经改变了事件的行为,现在单击保存按钮时,会调用doValidateUserID,但会完全跳过doSomeStuff。我必须再次点击调用doSomeStuff

1 个答案:

答案 0 :(得分:4)

在点击之前总会调用onblur,但是因为你在处理程序内部执行ajax调用,所以ajax结果调用将始终在click事件之后运行,因为它是非阻塞的(除非你将它设置为同步我会建议反对)

我建议阻止提交按钮,直到ajax完成或推迟提交,直到验证完成

希望这会有所帮助:)