我写了一个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。
谢谢!
答案 0 :(得分:1)
@adeneo做对了。如果您什么都不输入,请按“发送”,然后输入内容,然后在“发送”上输入MOUSEDOWN(不是鼠标),在输入上触发blur(),这会删除错误消息并使“发送”按钮向上移动。当它这样做时,你的鼠标不再在按钮上,所以你不要在按钮上鼠标。对于要提交的表单,当鼠标悬停在“发送”按钮上时,您必须mousedown和mouseup。