欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

實(shí)用又漂亮的BootstrapValidator表單驗(yàn)證插件

 更新時(shí)間:2016年05月30日 10:47:21   作者:沉默王二  
這篇文章主要為大家詳細(xì)介紹了好用又漂亮的BootstrapValidator表單驗(yàn)證插件,感興趣的小伙伴們可以參考一下

本文推薦一款twitter做的bootstrapValidator.js,本身bootstrap就是twitter做的,那么使用原配的validator也就更值得信賴(lài)。從百度上搜bootstrapValidator會(huì)出現(xiàn)很多款,但我只推薦這款:

一、一睹為快

為了簡(jiǎn)便的介紹,這里只做為空的check。

BootstrapValidator官方下載地址

二、資源引用

下載完資源包后,你可以看到如下的目錄。

然后把以下三個(gè)文件引入到你項(xiàng)目。

<link type="text/css" rel="stylesheet" href="${ctx}/components/validate/css/bootstrapValidator.css" />
<script type="text/javascript" src="${ctx}/components/validate/js/bootstrapValidator.js"></script>
<script type="text/javascript" src="${ctx}/components/validate/js/language/zh_CN.js"></script>

三、會(huì)員名稱(chēng)不為空項(xiàng)目配置

<form class="form-signin required-validate" action="${ctx}/login" method="post" onsubmit="return validateCallback(this)">
 <div class="form-group">
 <div class="row">
 <label>賬戶(hù)</label>
 <input class="form-control" type="text" autofocus name="username" placeholder="請(qǐng)輸入會(huì)員編號(hào)" autocomplete="off"
 data-bv-notempty />
 </div>
 </div>
</form>

data-bv-notempty表示該會(huì)員編號(hào)要做為空check。
form-group的div是必須的,否則會(huì)報(bào)“too much recursion”錯(cuò)誤。
form表單提交的時(shí)候會(huì)執(zhí)行validateCallback方法,該方法在第五步中具體介紹。

四、頁(yè)面加載完成后啟用bootstrap validator

$(function() {
 // validate form
 $("form.required-validate").each(function() {
 var $form = $(this);
 $form.bootstrapValidator();

 // 修復(fù)bootstrap validator重復(fù)向服務(wù)端提交bug
 $form.on('success.form.bv', function(e) {
 // Prevent form submission
 e.preventDefault();
 });


 });
});

在form表單上加上‘class=”required-validate”'屬性,然后通過(guò)jquery獲取對(duì)應(yīng)form表單,對(duì)其執(zhí)行默認(rèn)的bootstrapValidator加載。
一定要注意上面代碼中注釋部分代碼,具體介紹可參照下方修復(fù)BootstrapValidator重復(fù)提交的bug,具體內(nèi)容如下

BootstrapValidator很漂亮,但漂亮的臉蛋下往往會(huì)隱藏殺機(jī),這不,出現(xiàn)了重復(fù)提交的bug

解決辦法:

// validate form
$("form.required-validate", $p).each(function() {
 var $form = $(this);
 $form.bootstrapValidator().on('success.form.bv', function(e) {
 // 阻止默認(rèn)事件提交
 e.preventDefault();
 });
});

為BootstrapValidator設(shè)置on方法,其key為success.form.bv,value為e.preventDefault();。

bug調(diào)查:

調(diào)查結(jié)果:

1.當(dāng)不使用BootstrapValidator時(shí),就不會(huì)出現(xiàn)如圖提示問(wèn)題。
2.只有首次點(diǎn)擊提交,會(huì)重復(fù)提交兩次,而接下來(lái)重新輸入用戶(hù)名后,就單次提交了。

bug發(fā)生環(huán)境:

復(fù)制代碼 代碼如下:
<form class="required-validate" action="${ctx}/mem/login?callbackType=forward" method="post" onsubmit="return validateCallback(this, tabAjaxDone)" type="login">
...

<button type="submit" style="width: 100%;" class="btn btn-default">提交</button>

</form>

描述:
這是一個(gè)普通的form表單,action中為請(qǐng)求地址,form中有onsubmit方法,主要是為了驗(yàn)證表單,然后發(fā)送請(qǐng)求,最后回調(diào)tabAjaxDone方法。

bug分析:

1.form表單肯定沒(méi)有問(wèn)題,如果沒(méi)有bootstrap validate,那是一點(diǎn)問(wèn)題都沒(méi)有。
2.之前使用jquery validate的時(shí)候也沒(méi)有問(wèn)題。
3.那么問(wèn)題只能發(fā)生在bootstrap validate上了。
4.而bootstrap validate的默認(rèn)使用上也是沒(méi)有問(wèn)題的,因?yàn)橹挥惺状吸c(diǎn)擊提交時(shí)才會(huì)重復(fù)提交。
5.那么這可能是bootstrap validate有默認(rèn)的提交請(qǐng)求。

再查看validate對(duì)象,可以看到它默認(rèn)有很多事件,其中formsuccess的嫌疑最大,也就是說(shuō)有可能是其再次觸發(fā)了提交請(qǐng)求。

bug調(diào)試:

// validate form
$("form.required-validate", $p).each(function() {
 var $form = $(this);
 $form.bootstrapValidator();
// .on('success.form.bv', function(e) {
// // 阻止默認(rèn)事件提交
// e.preventDefault();
// });
});

1.在頁(yè)面初次加載的時(shí)候,BootstrapValidator需要按照上述方式進(jìn)行加載,方可進(jìn)行前端數(shù)據(jù)校驗(yàn)。
2.你已經(jīng)看到注釋的代碼,也許你已經(jīng)猜得到,這就是解決辦法。沒(méi)錯(cuò),為form加上該事件處理,使用e.preventDefault();阻止默認(rèn)事件提交。

五、form表單提交時(shí)驗(yàn)證項(xiàng)目

function validateCallback(form, callback, confirmMsg) {
 YUNM.debug("進(jìn)入到form表單驗(yàn)證和提交");

 var $form = $(form);

 var data = $form.data('bootstrapValidator');
 if (data) {
 // 修復(fù)記憶的組件不驗(yàn)證
 data.validate();

 if (!data.isValid()) {
 return false;
 }
 }


 $.ajax({
 type : form.method || 'POST',
 url : $form.attr("action"),
 data : $form.serializeArray(),
 dataType : "json",
 cache : false,
 success : callback || YUNM.ajaxDone,
 error : YUNM.ajaxError
 });

 return false;
}

validateCallback中獲取form表單后,通過(guò)isValid方法可以返回表單驗(yàn)證是否通過(guò)。
當(dāng)表單驗(yàn)證通過(guò)后,再通過(guò)ajax將表單提交到服務(wù)端。

如果大家還想深入學(xué)習(xí),可以點(diǎn)擊這里進(jìn)行學(xué)習(xí),再為大家附3個(gè)精彩的專(zhuān)題:

Bootstrap學(xué)習(xí)教程

Bootstrap實(shí)戰(zhàn)教程

Bootstrap插件使用教程

以上就是關(guān)于本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助。

相關(guān)文章

  • js如何監(jiān)聽(tīng)input輸入事件及使用防抖封裝函數(shù)處理方法

    js如何監(jiān)聽(tīng)input輸入事件及使用防抖封裝函數(shù)處理方法

    這篇文章主要給大家介紹了關(guān)于js如何監(jiān)聽(tīng)input輸入事件及使用防抖封裝函數(shù)處理方法的相關(guān)資料,最近有一個(gè)需求,需要我們實(shí)時(shí)監(jiān)聽(tīng)input輸入框中的內(nèi)容,從而帶來(lái)更好的用戶(hù)體驗(yàn),需要的朋友可以參考下
    2023-07-07
  • layui實(shí)現(xiàn)form表單同時(shí)提交數(shù)據(jù)和文件的代碼

    layui實(shí)現(xiàn)form表單同時(shí)提交數(shù)據(jù)和文件的代碼

    今天小編就為大家分享一篇layui實(shí)現(xiàn)form表單同時(shí)提交數(shù)據(jù)和文件的代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • js事件監(jiān)聽(tīng)機(jī)制(事件捕獲)總結(jié)

    js事件監(jiān)聽(tīng)機(jī)制(事件捕獲)總結(jié)

    添加事件的js方法也很多,有直接加到頁(yè)面結(jié)構(gòu)上的,有使用一些js事件監(jiān)聽(tīng)的方法,由于各個(gè)瀏覽器對(duì)事件冒泡事件監(jiān)聽(tīng)的機(jī)制不同
    2014-08-08
  • 一文搞懂?parseInt()函數(shù)異常行為

    一文搞懂?parseInt()函數(shù)異常行為

    這篇文章主要為大家介紹了一文搞懂?parseInt()函數(shù)異常行為示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • js實(shí)現(xiàn)用戶(hù)輸入的小寫(xiě)字母自動(dòng)轉(zhuǎn)大寫(xiě)字母的方法

    js實(shí)現(xiàn)用戶(hù)輸入的小寫(xiě)字母自動(dòng)轉(zhuǎn)大寫(xiě)字母的方法

    下面小編就為大家?guī)?lái)一篇js實(shí)現(xiàn)用戶(hù)輸入的小寫(xiě)字母自動(dòng)轉(zhuǎn)大寫(xiě)字母的方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-01-01
  • JavaScript中常見(jiàn)內(nèi)置函數(shù)用法示例

    JavaScript中常見(jiàn)內(nèi)置函數(shù)用法示例

    這篇文章主要介紹了JavaScript中常見(jiàn)內(nèi)置函數(shù)用法,結(jié)合實(shí)例形式分析了JavaScript常用內(nèi)置函數(shù)的功能、參數(shù)、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下
    2018-05-05
  • JavaScript代碼模擬鼠標(biāo)自動(dòng)點(diǎn)擊事件示例

    JavaScript代碼模擬鼠標(biāo)自動(dòng)點(diǎn)擊事件示例

    這篇文章主要介紹了JavaScript代碼模擬鼠標(biāo)自動(dòng)點(diǎn)擊事件示例,文章通過(guò)示例代碼和運(yùn)行效果圖介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • JS實(shí)現(xiàn)帶導(dǎo)航城市列表以及輸入搜索功能

    JS實(shí)現(xiàn)帶導(dǎo)航城市列表以及輸入搜索功能

    這篇文章主要為大家詳細(xì)介紹了JS實(shí)現(xiàn)帶導(dǎo)航城市列表以及輸入搜索功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • 使用js對(duì)select動(dòng)態(tài)添加和刪除OPTION示例代碼

    使用js對(duì)select動(dòng)態(tài)添加和刪除OPTION示例代碼

    動(dòng)態(tài)刪除select中的所有options、某一項(xiàng)option以及動(dòng)態(tài)添加select中的項(xiàng)option,在IE和FireFox都能測(cè)試成功,感興趣的朋友可以參考下,希望對(duì)大家有所幫助
    2013-08-08
  • echarts安裝與配置

    echarts安裝與配置

    這篇文章介紹了echarts安裝與配置的方法,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-06-06

最新評(píng)論