form表單驗(yàn)證

表單驗(yàn)證分類:

1、必填性:可以利用原生的表單元素的自身屬性,required ;當(dāng)采用表單原生的提交(非Ajax 異步請求(js方式提交))方式時(shí),可以調(diào)起內(nèi)部的校驗(yàn),不合法會(huì)有彈窗提示:"請?zhí)顚懘俗侄?。這個(gè)是HTML5中新增的。


案例.png

點(diǎn)擊submit按鈕時(shí)候,表單內(nèi)必填字段處會(huì)有提示。
2、長度限制:利用原生自帶的maxlength="數(shù)字",minlength="數(shù)字"
3、規(guī)定的類型:寫正則過濾,對應(yīng)錯(cuò)誤提示代碼。
4、邏輯校驗(yàn):自己寫js代碼。(第一個(gè)數(shù)值要小于后一個(gè)數(shù)值-時(shí)間段的選擇等問題上)

原生表單的形式:

form(action method)>input[*]+input[submit]
每一個(gè)都是必要的,最外層必須由form 標(biāo)簽包裹,內(nèi)部必須由類型是submit的輸入框。

一些定制demo

1.修改必填性不合法時(shí)候的提示文字

核心代碼:

oninvalid="setCustomValidity('請輸入您的姓名');" oninput="setCustomValidity('');" 

完整代碼:

 <input type="text" id="username" required oninvalid="setCustomValidity('請輸入您的姓名');" oninput="setCustomValidity('');" >
demo.png
2.阻止form表單點(diǎn)擊提交按鈕時(shí)自動(dòng)提交
$("input:submit").click(function(e){
     e = e||window.event;
    e.preventDefault();    //阻止默認(rèn)行為
})

或是:
    form表單.onsubmit = function () {
        return false
    }

驗(yàn)證是否生效:
填寫好合法的字段,點(diǎn)擊提交,瀏覽器的刷新按鈕不動(dòng)(表單提交時(shí)同步行為,肯定會(huì)刷新頁面),說明ok了,或是給action一個(gè)提交的后臺(tái)地址,這里可以給百度的試試,點(diǎn)擊提交,不跳轉(zhuǎn)百度,說明ok。


刷新按鈕.png
3.定制required字段不符時(shí)的提示框的樣式。

對于這個(gè)H5的新功能,貌似只能修改文字。不同瀏覽器的渲染樣式是不一樣的(瀏覽器程序中定制了提示框的API)

)。

4.定制required字段不符時(shí)的輸入框的樣式。
html:
<input type="text" name="name" required>
css:
/* 無效 */
input:required:invalid{
    CSS代碼
}
/* 有效 */
input:required:valid{
    CSS代碼
}
5.占位符的樣式定制
 input::placeholder {
            color: #DDDDDD;
            font-size: 16px;
            letter-spacing: 1px;
        }

        /*placeholder兼容處理*/
 input::-webkit-input-placeholder {
            color: #DDDDDD;
            font-size: 16px;
            letter-spacing: 1px;
        }
 input:-ms-input-placeholder {
            color: #DDDDDD;
            font-size: 16px;
            letter-spacing: 1px;
        }

其他

submit和button提交表單的區(qū)別
input 的type 類型分別為submit和button時(shí)候放在form標(biāo)簽里的區(qū)別:

  1. <input type="button" />單純的一個(gè)按鈕。沒有默認(rèn)行為,不寫js腳本的話,按下去什么反應(yīng)也沒有。

  2. <input type="submit" /> 有默認(rèn)行為,點(diǎn)擊會(huì)提交 form,除非寫了js阻止它。(<form onsubmit="return false;"> )

  3. <button> 標(biāo)簽,這個(gè)按鈕放在 form 中也會(huì)點(diǎn)擊自動(dòng)提交,比前兩個(gè)的優(yōu)點(diǎn)是樣式好定制些。缺點(diǎn)可能有瀏覽器兼容問題。

附一登錄的源碼:

可以到我的github上下載:
https://github.com/Macrolam/login

參考文章:

1:http://www.the-art-of-web.com/html/html5-form-validation/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • HTML表單 在HTML中,表單是 ... 之間元素的集合,它們允許訪問者輸入文本、選擇選項(xiàng)、操作對象等等,然后將...
    蘭山小亭閱讀 3,507評(píng)論 2 14
  • 版本:Angular 5.0.0-alpha 表單是商業(yè)應(yīng)用的支柱,我們用它來執(zhí)行登錄、求助、下單、預(yù)訂機(jī)票、安排...
    soojade閱讀 1,348評(píng)論 0 1
  • form簡介 是HTML中的一個(gè)元素,它表示文檔中的一個(gè)區(qū)域,這個(gè)區(qū)域包含了交互控件,用于向web服務(wù)器提交信息。...
    七里之境閱讀 1,503評(píng)論 0 1
  • 表單基礎(chǔ)知識(shí) 在HTML中,表單是由 元素來表示的,而在JS中,表單對應(yīng)的則是HTMLFormElement類型。...
    oWSQo閱讀 965評(píng)論 0 1
  • <input>標(biāo)簽 標(biāo)簽用于搜集用戶信息,根據(jù)不同的type屬性值,輸入字段擁有很多種形式。輸入字段可以是文本字段...
    _空空閱讀 4,193評(píng)論 0 3

友情鏈接更多精彩內(nèi)容