bootstrap 表单验证FormValidation ajax提交后怎么恢复初始状态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bootstrap 表单验证FormValidation ajax提交后怎么恢复初始状态相关的知识,希望对你有一定的参考价值。
图一是我进入此页面并刚刚填写,图2是我点击‘继续添加’后的结果,是ajax提交返回success并显示成功信息,并将表单清空,但是表单验证的效果仍然还在;图3是我希望点击提交后的状态!怎么做?
1. 继续添加, ajax 提交success的回调中清空表单后重置表单校验:
或者
$(form).bootstrapValidator('resetForm'); // For BootstrapValidator Plugin2. 提交如果是submit的话页面刷新也就没有这个问题,如果同样是ajax提交,同上
3. 如果不像每次都写这句话, 可以简单封装下, 比如你清空form的方法里加上重置校验
参考技术A 把代码发出来使用Javascript / jQuery进行Bootstrap 4表单验证
我是Web开发的新手,我正在尝试设置练习表来学习表单验证。我正在关注Bootstrap的doc for Custom Styles来处理那些使用屏幕阅读器的可访问性问题,并为不同浏览器的用户标准化验证外观。
我已经设置了一个基本表单,并尝试使用jQuery创建一个JavaScript函数来处理验证。我觉得我几乎就在那里,但仍然没有像Bootstrap演示显示那样进行验证。
的index.html
<form id="signup-form" novalidate>
<div class="form-group">
<h1>Sign Up</h1>
<p>Use this form to enter your name and email to sign up.</p>
</div>
<!-- Name -->
<div class="form-group">
<div class="row">
<div class="col">
<label for="firstNameInput">Name</label>
<input type="text" class="form-control" id="firstNameInput" placeholder="First name" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
<div class="col">
<label for="lastNameInput">Last</label>
<input type="text" class="form-control" id="lastNameInput" placeholder="Last name" required>
<div class="valid-feedback">
Looks good!
</div>
</div>
</div>
</div>
<!-- Email -->
<div class="form-group">
<label for="emailAddressInput">Email address</label>
<input type="email" class="form-control" id="emailAddressInput" aria-describedby="emailHelp" placeholder="name@example.com" required>
<small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
<div class="invalid-feedback">
Please provide a valid email.
</div>
</div>
<!-- Options -->
<div class="form-group">
<div class="form-check">
<input class="form-check-input" type="radio" name="Radios" id="type1RadioButton" value="option1" checked>
<label class="form-check-label" for="type1RadioButton">
Type 1 user
</label>
</div>
<div class="form-check">
<input class="form-check-input" type="radio" name="Radios" id="type2RadioButton" value="option2">
<label class="form-check-label" for="type2RadioButton">
Type 2 user
</label>
</div>
</div>
<!-- Submit Button -->
<div class="form-group">
<a href="#" class="btn btn-primary" id="submitButton" type="submit">Submit</a>
</div>
</form>
的script.js
$(document).ready(function() {
$("#submitButton").click(function() {
//Fetch form to apply custom Bootstrap validation
var form = $("#signup-form")
//alert(form.prop('id')) //test to ensure calling form correctly
if (form.checkValidity() === false) {
event.preventDefault()
event.stopPropagation()
}
form.addClass('was-validated')
})
})
问题是checkValidity()存在于第一个表单节点上,而不是表单上。
改变这个:form.checkValidity() === false
对此:form[0].checkValidity() === false
它起作用:https://www.codeply.com/go/pUPBLzn6yL
$(document).ready(function() {
$("#submitButton").click(function() {
//Fetch form to apply custom Bootstrap validation
var form = $("#signup-form")
alert(form.prop('id')) //test to ensure calling form correctly
if (form[0].checkValidity() === false) {
event.preventDefault()
event.stopPropagation()
}
form.addClass('was-validated');
//Make ajax call here
})
})
有关Bootstrap 4验证的更多信息: Can't make the validation work in Bootstrap 4
以上是关于bootstrap 表单验证FormValidation ajax提交后怎么恢复初始状态的主要内容,如果未能解决你的问题,请参考以下文章