1

我有一个带有文本和提交按钮的简单表单,如下所示

<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 事件。
小提琴链接
任何人都可以向我解释它是如何发生的,我该如何解决它
谢谢。

4

1 回答 1

1

blur 事件在 click 事件之前被触发。发生这种情况是因为释放鼠标按钮后会触发单击事件。完成这项工作的最简单方法是在 mousedown 事件而不是 click 事件上显示警报。

例如,使用这个

    $("#SubmitButton").live("mousedown", function() {
        alert("button click!");
    });

上面的更改在 OS X 上的 chrome 中对我有用,但是您应该知道这方面存在一些争议。更好的解决方案是重新排列您的元素,以便验证消息不会推出提交按钮。

于 2012-11-11T02:19:22.567 回答