【问题标题】:jQuery Check user's input before form submissionjQuery 在表单提交之前检查用户的输入
【发布时间】:2014-07-30 14:59:25
【问题描述】:

我正在尝试在用户提交表单之前验证他们的输入。虽然当他们按下按钮时我成功地这样做了,但不知何故,当他们按下回车键时我无法让它停止:

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;
      }
 } 

【问题讨论】:

  • 您要验证什么?检查用户是否按下了空字符串的提交按钮?
  • 检查他们输入的字符串是否满足正则表达式的要求。

标签: javascript jquery html forms


【解决方案1】:

试一试:

$('.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;
    }
} 

【讨论】:

  • 谢谢劳伦斯。我通过删除不必要的杂乱部分来更新问题,这些部分以某种方式逃脱了我之前的检查。我也试过你的代码,但它只是直接提交而没有验证任何东西。
  • 嗯,这并不奇怪。我发现这种方法非常不一致,但我发布了一种替代方法,该方法基于在验证失败时防止默认事件。再试一次。
  • 好吧,我能问一下你用什么表达来测试吗?还有另一种不好玩的方法,但是您是否至少检查过是否正在调用该函数?此时设置 jsfiddle 可能会有所帮助
  • 我终于成功了。如果条件没有得到满足,导致了雪崩般的麻烦。我将条件更改为 if (0
【解决方案2】:

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

【讨论】:

  • 谢谢。不过,我更愿意继续使用 JS 和 JQuery。
猜你喜欢
  • 2016-08-06
  • 2012-07-08
  • 1970-01-01
  • 1970-01-01
  • 2016-11-13
  • 1970-01-01
  • 1970-01-01
  • 2015-10-12
  • 1970-01-01
相关资源
最近更新 更多