簡體   English   中英

錯誤消息重復多次 - 引導程序和 jQuery 驗證表單

[英]error message repeat multiple time - bootstrap and jQuery validation form

對於我的注冊表單,我使用的是 bootstrap 3 和 jQuery 驗證插件。 一切正常,除了每次用戶單擊字段時都會重復錯誤消息。 我檢查了一些工作示例,但找不到與我的代碼不同的任何內容。 我也嘗試刪除()或隱藏()錯誤消息,但仍然存在。 有什么建議可以解決嗎?

<form accept-charset="UTF-8" method="post" action="form.php" class="form-inline" novalidate="novalidate">
        <div class="row col-md-10">
            <label for="name" class="control-label">Full name*</label>
            <input type="text" class="form-control" id="name" name="name"> 

            <label for="email" class="control-label">E-mail*</label>
            <input type="email" class="form-control" id="email" name="email" placeholder="e.g. yourname@work.com, yourname@university.com, ..."> 

            <label for="city" class="control-label">City*</label>
            <input type="text" class="form-control" id="country" name="country" data-validation="country" data-toggle="tooltip" data-placement="right" title="" data-original-title="Why we need your city? We aim to match people on a regional basis. Although this is done for ensuring convenient times as most contact is usually via phone or video." name="city">

            <label for="zipcode"> Zip code </label>
            <input type="text" class="ignore form-control zipcode" name="zipcode">
        </div>  
        <div class="row col-md-10">
          <label for="currently_employed" class="control-label currently_employed"> Are you in current employment?* </label>
          <ul class="options">
            <li>
              <input type="radio" class="form-control" id="user_currently_employed_true" name="currently_employed" value="true" /> 
              <label for="currently_employed_true" class="control-label"> Yes </label>
            </li>
            <li>
              <input type="radio" class="form-control" id="user_currently_employed_false" name="currently_employed" value="false" />
              <label for="currently_employed_false" class="control-label"> No </label>
            </li>
          </ul>
          <div class="clear"></div>

          <label for="company" class="control-label"> Your Company/University* </label>
          <input type="text" class="form-control" name="company"/>
  </div>
  [....]
</form>

驗證:

<script src="lib/jquery.validate.min.js"></script>
<script src="lib/jquery.form.js"></script>
<script src="lib/jquery.mockjax.js"></script>
<script src="lib/additional-methods.min.js"></script>
<script>
  $('#country').tooltip();

  $('form').validate({
      ignore: '.ignore',
      rules: {
          name: {
            minlength: 2,
            required: true
          },
          email: {
            required: true,
            email: true
          },
          messages: {
            name: "Please specify your name",
            email: {
              required: "We need your email address to contact you",
              email: "Your email address must be in the format of name@domain.com"
            }
          }
      },
      errorPlacement: function(error, element) {
      error.insertAfter('#wrap-error span');
      },
      highlight: function(element) {
          $(element).closest('.form-inline').addClass('has-error');
      },
      unhighlight: function(element) {
          $(element).closest('.form-inline').removeClass('has-error');
      }
  });

</script>
</body>
</html>

我終於找出問題所在。 它只是要求包含#wrap-error,其中包含錯誤消息的錯誤附加在form元素內部。

我有一個類似的錯誤 - 但這是因為頁面中有多個元素與我的錯誤element選擇器相匹配。 換句話說,對於下面的代碼片段,我的頁面上有不止一件事與element匹配

error.insertAfter(element);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM