bsValidate是一个轻量级但功能丰富的jQuery表单验证插件,适用于Bootstrap 5和Bootstrap 4框架。
通过HTML很容易实现表单字段的验证规则数据
属性,没有任何JS调用。请随时下载并在您的下一个Bootstrap项目中使用它,以确保您的用户提交的信息是有效的。
1.要开始,请确保已加载最新的jQuery库和Bootstrap 5框架。
<link rel="stylesheet" href="/path/to/cdn/bootstrap.min.css" /> <script src="/path/to/cdn/jquery.min.js"></script> <script src="/path/to/cdn/bootstrap.bundle.min.js"></script>
2.下载插件并加载jquery.bs验证.js
jQuery之后的脚本。
<script src="jquery.bsValidate.js"></script>
3.添加所需内容bs验证
类,并使用以下HTML配置验证规则数据
属性:
<form id="addUser" autocomplete="off" action="" novalidate> <fieldset> <div class="form-group row"> <label for="firstName" class="col-2 col-form-label">First Name</label> <div class="col"> <input type="text" class="form-control bs-validate" name="firstName" id="firstName" minlength="2" maxlength="40" data-hint="2 to 40 charcters required" data-hint-on-focus="true" data-on-input="outputValueToConsole" data-on-valid="onValid.spinner" data-spinner-class="text-info" data-max-length-helper="true" required /> </div> </div> <div class="form-group row"> <label for="lastName" class="col-2 col-form-label">Last Name</label> <div class="col"> <input type="text" class="form-control bs-validate" name="lastName" id="lastName" minlength="2" maxlength="40" data-hint="2 to 40 charcters required" data-alphanumeric-helper="true" data-max-length-helper="true" required /> </div> </div> <div class="form-group row"> <label for="email" class="col-2 col-form-label">Email</label> <div class="col"> <input type="email" class="form-control bs-validate" name="email" id="email" data-email-domain-helper="true" required /> </div> </div> <div class="form-group row"> <label for="issue_date" class="col-2 col-form-label">Issue Date</label> <div class="col"> <input type="date" class="form-control bs-validate" name="issue_date" id="issue_date" min="1900-01-01" max="2099-12-31" required /> </div> </div> <div class="form-group row"> <label for="age" class="col-2 col-form-label">Age</label> <div class="col"> <input type="number" class="form-control bs-validate" name="age" id="age" min="18" max="65" step="1" data-hint="Enter a number between 18 to 65 in steps of 1" required /> </div> </div> <div class="form-group row"> <label for="education" class="col-2 col-form-label">Education</label> <div class="col"> <select class="custom-select bs-validate" name="education" id="education" required> <option></option> <option value="1">High School</option> <option value="2">College</option> <option value="3">Graduate</option> </select> </div> </div> <div class="form-group row"> <legend class="col-form-label col-2">Terms</legend> <div class="col col-form-label"> <div class="custom-control custom-checkbox"> <input class="custom-control-input bs-validate" type="checkbox" name="terms" id="terms" value="1" required> <label class="custom-control-label" for="terms">Agree</label> </div> </div> </div> <div class="form-group row"> <legend class="col-form-label col-2">Conditions</legend> <div class="col col-form-label"> <div class="form-check form-check-inline"> <input class="form-check-input bs-validate" type="checkbox" name="conditions" id="conditions" value="1" required> <label class="form-check-label" for="conditions">Agree</label> </div> </div> </div> <div class="form-group row"> <legend class="col-form-label col-2">Tier</legend> <div class="col col-form-label"> <div class="form-check"> <input class="form-check-input bs-validate" type="radio" name="tier" id="tier_1" value="1" required> <label class="form-check-label" for="tier_1"> Gold </label> </div> <div class="form-check"> <input class="form-check-input bs-validate" type="radio" name="tier" id="tier_2" value="2" required> <label class="form-check-label" for="tier_2"> Platinum </label> </div> </div> </div> <div class="form-group row"> <legend class="col-form-label col-2">Reward</legend> <div class="col col-form-label"> <div class="custom-control custom-radio custom-control-inline"> <input class="custom-control-input bs-validate" type="radio" name="reward" id="reward_1" value="1" required> <label class="custom-control-label" for="reward_1"> Points </label> </div> <div class="custom-control custom-radio custom-control-inline"> <input class="custom-control-input bs-validate" type="radio" name="reward" id="reward_2" value="2" required> <label class="custom-control-label" for="reward_2"> Miles </label> </div> </div> </div> <div class="form-group row"> <label for="group" class="col-2 col-form-label">Group</label> <div class="col"> <div class="input-group"> <input type="text" class="form-control bs-validate" id="group" minlength="2" maxlength="40" data-hint="2 to 40 charcters required" data-max-length-helper="true" data-on-valid="onValid.spinner" required> <span class="input-group-text" id="basic-addon2">@jQueryScript.Net</span> </div> </div> </div> <div class="from-group row mb-4"> <label for="comments" class="col-2 col-form-label">Comments</label> <div class="col"> <textarea class="form-control bs-validate" name="comments" id="comments" rows="5" data-on-input="outputValueToConsole" required></textarea> </div> </div> <div class="form-row"> <div class="col-12 text-right"> <button type="submit" class="btn btn-primary">Create</button> <button type="reset" class="btn btn-outline-danger">Reset</button> </div> </div> </fieldset> </form>
3.您还可以使用JavaScript自定义验证规则。所有默认选项:
$.fn.bsValidate.defaults = { alphanumericHelper: false, autoTrim: true, emailDomainHelper: false, helperClass: "text-info", hint: "", hintClass: "text-muted", hintOnFocus: false, maxLengthHelper: false, // callbacks onBlur: null, onFocus: null, onInput: null, onReset: null, onSubmit: null, onValid: null, onValidDebounce: 700, patternMismatchErrorMessage: "", spinnerClass: "text-primary", };