jQuery在表单提交之前检查用户的输入

时间:2014-06-10 00:13:27

标签: javascript jquery html forms

我在提交表单之前尝试验证用户的输入。虽然我在按下按钮时成功这样做,但是当他们按下回车键时我也无法停止:

HTML:

   <form method='post' class='submit_form' action="<?php echo base_url();?>interview/reserve_temporary">
        <input type="text" class="form-control email_input" id="reserve_email_2" placeholder="Email">
        <button type="button" id="subscribe_2" class="btn btn-default text-center foot-submit-btn subscribe_button">Let me try</button>
   </form>

JS:

  $('.submit_form').submit(function(e) { 

      var email = $(this).find('.email_input').val();
      var id=$(this).find('.subscribe_button').attr('id').split("_").pop(); 

      var regex_email = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

      if (regex_email.test(email)||email.match(/^\d+$/)) {
          $(this).text('Sending……');
      }
      else {
          return false;
      }
 } 

2 个答案:

答案 0 :(得分:2)

试一试:

$('.submit_form').submit(function(e) { 

    var email = $(this).find('.email_input').val();
    var id=$(this).find('.subscribe_button').attr('id').split("_").pop(); 

    var regex_email = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;

    if (regex_email.test(email)||email.match(/^\d+$/)) {
        $(this).text('Sending……');
        return true
    }
    else {
        e.preventDefault();
        e.stopImmediatePropagation();
        return false;
    }
} 

答案 1 :(得分:0)

您可以使用更简单的选项来验证输入 检查jquery验证引擎,这是一个简单而强大的验证工具 https://github.com/posabsolute/jQuery-Validation-Engine