jQuery事件链接和表单不提交

时间:2013-12-05 20:09:32

标签: jquery html forms

我写了一个PHP库,它生成服务器端验证代码以及客户端(jQuery)验证代码。这是我的代码:http://jsfiddle.net/W5d7e/2/

$(document).ready(function () {
var contactMessageInputValidationFunction = function () {
    if ($.trim($("#contactMessageInput").val()).length > 0) {
        $("#contactMessageInputErrorMessage").hide();
        return true;
    } else {
        $("#contactMessageInputErrorMessage").show();
        return false;
    }
};

$("#contactMessageInput").blur(contactMessageInputValidationFunction).parents("form").submit(contactMessageInputValidationFunction);
});

在我的示例中,在输入模糊时,我们检查输入是否为空,如果是,则显示错误消息。我还在表单提交上运行此验证函数,如果它返回false(无效输入),则表单不会提交。

问题在于:按“发送”按钮,将显示错误消息。然后,在textarea中键入一条消息,然后立即再次单击“提交”按钮。错误消息消失,但在再次按“发送”之前不会提交表单。为什么我需要再次按下它?我的验证功能在某种程度上是否不正确?我链接事件的方式不正确吗?

供参考,我使用的是Chrome 31.0。

谢谢!

1 个答案:

答案 0 :(得分:1)

@adeneo做对了。如果您什么都不输入,请按“发送”,然后输入内容,然后在“发送”上输入MOUSEDOWN(不是鼠标),在输入上触发blur(),这会删​​除错误消息并使“发送”按钮向上移动。当它这样做时,你的鼠标不再在按钮上,所以你不要在按钮上鼠标。对于要提交的表单,当鼠标悬停在“发送”按钮上时,您必须mousedown和mouseup。