【问题标题】:How to prevent form submission on parsley error如何防止欧芹错误的表单提交
【发布时间】:2018-06-05 14:47:08
【问题描述】:

基于 Parsley Js documentation,当出现验证错误时,尚不清楚何时返回 false。当出现表单错误时,如何防止表单提交?

 $(function () {
      $('#demo-form').parsley().on('field:validated', function() {
        var ok = $('.parsley-error').length === 0;
        $('.bs-callout-info').toggleClass('hidden', !ok);
        $('.bs-callout-warning').toggleClass('hidden', ok);
      })
      .on('form:submit', function() {
     return false; // Don't submit form for this demo
      });
    });

【问题讨论】:

  • 我加了一个小提琴。请将答案标记为已选择。

标签: jquery parsley.js


【解决方案1】:

Preventing form submission after validation by parsley.js

$(function() {
  $('#demo-form').parsley().on('field:validated', function() {
    var ok = $('.parsley-error').length === 0;
    $('.bs-callout-info').toggle(!ok);
  });

  $("#demo-form").on('submit', function(e) {
    e.preventDefault();
    var form = $(this);

    form.parsley().validate();

    if (form.parsley().isValid()) {
      alert('valid');
    }
  });
});
body {
  background: #20262E;
  padding: 20px;
  font-family: Helvetica;
}

body form {
  color: #FCFFEE;
}

#banner-message {
  float: right;
  background: #fff;
  border-radius: 4px;
  padding: 20px;
  font-size: 25px;
  text-align: center;
  transition: all 0.2s;
  margin: 0 auto;
  width: 300px;
}

button {
  background: #0084ff;
  border: none;
  border-radius: 5px;
  padding: 8px 14px;
  font-size: 15px;
  color: #fff;
}

#banner-message.alt {
  background: #0084ff;
  color: #fff;
  margin-top: 40px;
  width: 200px;
}

#banner-message.alt button {
  background: #fff;
  color: #000;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="http://parsleyjs.org/dist/parsley.min.js"></script>
<form id="demo-form">
  <h2>Form</h2>
  <input type="text" required value="" />
  <button type="submit">SUBMIT</button>
</form>
<br />
<span id="banner-message" class="bs-callout-info" style="display: none">
  error
</span>

Fiddle here

【讨论】:

  • 我不知道托尼是谁,但你的回答无效
  • 你写的和我写的完全一样,还是你保留了你的语法?
  • $('#demo-form').parsley() 这可能不会返回 $("form") 元素
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-26
  • 1970-01-01
  • 1970-01-01
  • 2016-06-30
相关资源
最近更新 更多