1

我有一个表单,在使用这样的 jQuery 单击按钮时提交表单后。

function validate(){
   if($('#firstname').val() =="")
           alert("Please enter your first name");
   else if($('#lastname').val() == "")
    alert("Please enter your last name");
   else if( $('#association').val() == "")
    alert("Choose your association");
   else if($('#association_no').val() == "")
    alert("Please enter your association number");
   else
    $('#register').submit();
  }


  $(function(){


       $(".enter_submit").keyup(function(event) {
        if(event.keyCode === 13) 
        validate();

      })

  })

警报框显示正常,但我的问题是当我在显示警报框后按 Enter 键时,它会提供另一个警报框而不是摆脱警报(当我用鼠标单击确定时工作正常)。在 FF 中,它会通过此页面为 #prevent 提供更多警报。所以我相信即使在显示警报后它仍然专注于表单。

4

2 回答 2

0

显示警报框后指定返回 False。这可能不会同时显示其他警报框。

function validate() {
            if ($('#firstname').val() == "") {
                alert("Please enter your first name");
                return false;
            }
            else if ($('#lastname').val() == "") {
                alert("Please enter your last name");
                return false;
            }
            else if ($('#association').val() == "") {
                alert("Choose your association");
                return false;
            }
            else if ($('#association_no').val() == "") {
                alert("Please enter your association number");
                return false;
            }
            else {
                $('#register').submit();
                return true;
            }
        }


        $(function () {
            $(".enter_submit").keyup(function (event) {
                if (event.keyCode === 13)
                    return validate();
            });
        });

希望这有帮助

谢谢普拉尚特

于 2013-05-04T11:57:55.893 回答
0

我使用模糊功能解决了这个问题

  $(".enter_submit").keyup(function(event) {
        $(this).blur();
         if(event.keyCode === 13) 
        return validate();

      })

我认为即使在显示警报时文本字段仍处于焦点位置,因此必须将其移出焦点,即模糊它。感谢所有回复的人。

于 2013-05-04T14:47:45.543 回答