返回false jquery后表单提交

时间:2016-01-06 19:25:01

标签: javascript php jquery html forms

我的简单jquery代码显示了alter框,但也提交了表单。为什么会这样?当按下回车键并且长度小于3时,它应该显示错误并且不应该提交表格,但是即使在显示错误之后它也会提交表格。

            $('#frmSearch input').keydown(function(e) {
            if (e.keyCode == 13) {
                if ($('#frmSearch input').val().length < 3) {
                    alert("SEARCH TEXT TOO SHORT");
                    return (false);
                }
                else
                {
                    $('#frmSearch').submit();
                }
            }
        });

3 个答案:

答案 0 :(得分:2)

Enter键自动提交表单。你可以这样做:

$("#frmSearch").submit(function(e){
   if ($('#frmSearch input').val().length < 3) {
      e.preventDefault();
      alert("SEARCH TEXT TOO SHORT");
   }
}

并且您不处理提交事件但是不停止从呼叫提交的keydown事件。

答案 1 :(得分:1)

您也可以尝试,使用按键不使用 keydown

(function ($) {
  $ ('# frmSearch input'). keypress (function (e) {
             if (e.KeyCode == 13) {
                 if ($ ('# frmSearch input'). val (). length <3) {
                     alert ("SEARCH TEXT TOO SHORT");
                     return (false);
                 }
                 else
                 {
                     $ ('# frmSearch') submit ().;
                 }
             }
         });

}) (jQuery);

答案 2 :(得分:0)

有时,Enter键可以默认自动提交表单。如果要拦截并阻止该行为,可以停止默认提交。 我会在您的代码中添加e.preventDefault()

<强> 更新

$('#frmSearch input').keydown(function(e) {

    if (e.keyCode == 13) {
        //Prevents default submit
        e.preventDefault();

        if ($('#frmSearch input').val().length < 3) {
            alert("SEARCH TEXT TOO SHORT");
            return (false);
        }
        else
        {
            $('#frmSearch').submit();
        }
    }
});