当我按Enter键时,我需要提交表单的内容,但前提是表单没有错误消息。我建立了以下功能:

$(targetFormID).submit(function (e) {
    var mess = error_m(targetDiv);
    if (e.keyCode == 13 && mess.length > 0) {
        e.preventDefault();
        e.stopPropagation();
    }
    if (mess.length == 0 && e.keyCode == 13) $(targetFormID).submit();
});

在此函数中,mess变量将获取函数error_m返回的错误消息,其余的只是简单的代码处理,但无法正常工作。

需要一些帮助!

最佳答案

按下Enter键时提交表单是默认的浏览器行为。不要惹它。只需在submit事件中验证表单即可。

$(targetFormID).submit(function (e) {
    var mess = error_m(targetDiv);
    if (mess.length > 0) {
        e.preventDefault();
    }
});

另一个可能的问题:targetFormID是什么?如果实际上是包含元素ID的字符串,则需要
$("#" + targetFormID).submit(/* Same function as above */);

如果它是对form元素的引用,则$(targetFormID)可以,但是您的变量的名称具有误导性。

10-07 22:02