javascript - 验证jquery问题

标签 javascript jquery html validation jquery-validate

我真的需要帮助,我正在处理验证表单,验证正在工作。我的问题是如何呈现特定于该字段和该字段旁边的错误? 现在,如果用户输入无效的电话和无效的邮件,则会在两个字段(电子邮件和电话)中显示“电话必须是 9-10 位数字”。所以我想要的是在每个字段中显示与该字段相关的错误。

$('.xone-contact').submit(function() {
  var $form = $(this);
  var $form1 = $(this);
  var $form2 = $(this);
  var submitData = $form.serialize();
  var $phone = $form1.find('input[name="phone"]');
  var $email = $form2.find('input[name="email"]');
  var $name = $form.find('input[name="name"]');
  var $message = $form.find('textarea[name="message"]');
  var $submit = $form.find('input[name="submit"]');
  var $dataStatus = $form.find('.data-status');
  var $dataStatus1 = $form1.find('.phone_error');
  var $dataStatus2 = $form2.find('.email_error');

  $email.attr('disabled', 'disabled');
  $phone.attr('disabled', 'disabled');
  $name.attr('disabled', 'disabled');
  $message.attr('disabled', 'disabled');
  $submit.attr('disabled', 'disabled');

  $dataStatus.show().html('<div class="alert alert-info"><strong>Loading...</strong></div>');

  $.ajax({ // Send an offer process with AJAX
    type: 'POST',
    url: 'assets/contact_form/process-contact.php',
    data: submitData + '&action=add',
    dataType: 'html',
    success: function(msg) {
      if (parseInt(msg, 0) !== 0) {
        var msg_split = msg.split('|');
        if (msg_split[0] === 'success') {
          $phone.val('').removeAttr('disabled');
          $email.val('').removeAttr('disabled');
          $name.val('').removeAttr('disabled');
          $message.val('').removeAttr('disabled');
          $submit.removeAttr('disabled');
          $dataStatus.html(msg_split[1]).fadeIn();
        } else {
          $phone.removeAttr('disabled');
          $email.removeAttr('disabled');
          $name.removeAttr('disabled');
          $message.removeAttr('disabled');
          $submit.removeAttr('disabled');
          $dataStatus.html(msg_split[1]).fadeIn();
          $dataStatus1.html(msg_split[1]).fadeIn();
          $dataStatus2.html(msg_split[1]).fadeIn();
        }
      }
    }
  });

  return false;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form method="post" action="#" class="xone-contact">
  <div class="row">
    <div class="col-sm-12">
      <div class=" margin-b-20">
        <input type="text" name="name" class="form-control" id="name" placeholder="Full Name...." />
      </div>
      <div class=" margin-b-20">
        <input type="text" name="email" class="form-control" id="email" placeholder="Email Address...." />
        <div class="email_error">
        </div>
        <div class=" margin-b-20">
          <input type="text" name="phone" class="form-control" id="phone" placeholder="Phone Number..." />
          <div class="phone_error">
          </div>
        </div>
        <div class="col-sm-12">
          <textarea name="message" class="form-control margin-b-20" rows="5" id="massage" placeholder="Message...."></textarea>
        </div>
      </div>
      <div class="row">
        <div class="col-sm-12 text-center">
          <div class="data-status"></div>
          <!-- data submit status -->
        </div>
      </div>
      <div class="row">
        <div class="col-sm-12 text-center">
          <button type="submit" name="submit" id="contact_submit button" class="btn btn-lg btn-skin-border btn-block margin-b-20">Send Message</button>
        </div>
      </div>
</form>
<!--form end-->

最佳答案

HTML5 表单输入能够自行检查模式,因此无需将它们发送到服务器来验证它 - 您可以使用如下内容:

<input type=text pattern="[0-9]{9,10}" title="Enter 10 digits phone number" placeholder="phone">

title 属性在输入不正确时用作错误消息。

Documentation on MDN

fiddle :https://jsfiddle.net/f298v432/

关于javascript - 验证jquery问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45502844/

相关文章:

javascript - 如何处理动态设置动态 iframe 内容

javascript - 在 <div> 元素中放置背景图像时不显示任何内容

html - HTML 电子邮件 Outlook 2007 中的重复内容

javascript - 如何单击将执行但不重定向的链接。

javascript - JestJS:如何获得模拟函数的不同 promise 结果并测试抛出的错误?

javascript - 从动态对象映射并生成数组

c# - 将数据传递到 ModalPopupExtender

javascript - 在 XMLHTTPRequest 中 POST base64 png

jquery - 使用 Jquery 更新输入值

javascript - jQuery 动画和属性值百分比