設計乙個通用的表單驗證,如果後期表單中新增了更多的需求,不需要更改之前的**邏輯,最好不要改之前的**,需要加什麼直接加就好了。
此表單驗證最好返回乙個函式,在api設計這塊我選擇在每個表單項上新增valid屬性,在驗證中通過檢視是否有valid屬性、valid屬性的內容來獲取需要驗證的表單,並且返回驗證的結果。
該分析的也分析了,那就開始幹吧!!!
由於重點是表單驗證方面,html和css我就能簡則簡
<按照之前的設計思路,是乙個函式,返回驗證表單的錯誤資訊,那麼引數肯定為要驗證的表單form
id="login-form"
>
<
p id
="errormsg"
style
="color:red"
>
p>
<
input
type
="text"
name
="username"
id="username"
>
<
input
type
="password"
name
="password"
id="password"
>
<
input
type
="button"
value
="提交"
id="btn"
>
form
>
function formcheck(form)由於我們是通過 表單中我們自己加的屬性來判斷是否需要驗證,那麼我們現在在表單中加入這個屬性,假設現在username和password需要驗證不能為空,username為手機號格式。
valid="preset,phone">接著我們上面的formcheckvalid="preset">
function formcheck(form)上面的函式中用到了rules,這是我們自己定義的乙個驗證規則,為乙個物件let checkresult = //儲存驗證結果的陣列
let elements = form.elements //表單元素集合
array.from(elements).filter(ele => ).map(item =>
})if (errorarr.length) )}})
return checkresult //返回該陣列
}
const rules =}},至此,乙個表單驗證的formcheck 就完成了,呼叫試一試:phone (val) }}
}
<什麼都不填直接點選btn結果為:form
id="login-form"
>
<
p id
="errormsg"
style
="color:red"
>
p>
<
input
type
="text"
name
="username"
id="username"
valid
="require,phone"
>
<
input
type
="password"
name
="password"
id="password"
valid
="require"
>
<
input
type
="button"
value
="提交"
id="btn"
>
form
>
<
script
>
let form
=document.getelementbyid(
'login-form')
let btn
=document.getelementbyid(
'btn')
btn.onclick
=()
=>
script
>
username隨便輸乙個數字,點選btn結果為:
返回的結果裡,dom元素也有,提示資訊也有,我們取到想要的值就可以愉快的進行判斷了。
以後如果需要加乙個郵箱的input,valid='email'啥的, 我們直接在rules定義好email這個驗證規則,然後就可以直接在input的valid屬性上加上email,別的完全不用改。是不是很方便呀
如果有多個valid,別忘了用逗號分隔哈,因為我們split是根據逗號來的。
封裝乙個表單驗證類
封裝乙個表單驗證類 中文驗證 郵箱驗證 號碼 手機 qq 身份證 由字母 數字 下劃線組成,不能以數字開頭 header content type text html charset utf 8 class form x u return preg match reg,str 郵箱驗證 引數 ema...
2 2 封裝乙個獲取元素的樣式的方法
一 設定和獲取行內的樣式 box div 設給元素置樣式 注意這設定的是行內樣式 var obox document.getelementbyid box obox.style.width 200px obox.style.height 200px obox.style.background red...
IO4 1封裝乙個刪除檔案函式
需求如題。首先,我們需要建立乙個檔案 filename path py.txt try f open filename path,w 寫入模式,會沖刷掉檔案內容 print f.write 作者,黃蓉 f.close except 異常處理 print s檔案找不到 filename path 成功...