我有一个带有文字和提交按钮的简单表格,如此
<label>Input something </label>
<input type="text" id="TextId" value="Whatever you input,it is wrong" />
<div id="ErrorDiv"></div>
<input type="submit" id="SubmitButton""/>
我在文本框中附加了一个焦点事件,以在ErrorDiv中显示多行消息
当我单击按钮提交时,文本的onfocusout首先执行,它使我的按钮移出其位置并且不会触发Onclick事件。
fiddle link
任何人都可以向我解释它是如何发生的,我该如何解决它
感谢。
答案 0 :(得分:1)
在click事件之前触发blur事件。发生这种情况是因为释放鼠标按钮后会触发click事件。完成此工作的最简单方法是在mousedown事件而不是点击事件上显示警报。
例如,使用此
$("#SubmitButton").live("mousedown", function() {
alert("button click!");
});
上述更改对我在OS X上的chrome有用,但是你应该知道这周围有一些controversy。更好的解决方案是重新排列元素,以便验证消息不会推出提交按钮。