乙個頁面表單控制項驗證的隨筆演算法和相關部分js

2021-04-17 02:04:30 字數 1349 閱讀 5025

1.問題描述

首先獲取到表單內部的所有controls,主要是對controls進行嚴整,關於答案control主要是包含radio和text.

條件:我們首先要確定那些controls是需要進行處理的,並且給予標記.這裡我給了每個需要驗證的controls乙個自定義的屬性question,並且根據實際的問題進行definition, example: question = "a",實際我在控制中是question =1....

我們假定controls大致由以下組合構成: aaaaabbb*cccc**ddddeeee

其中*號表示不需要進行驗證的controls,這樣通過definition我就可以根據定義進行分組,然後每組驗證controls的狀態。

驗證條件:

第一,一組內的controls如果全部disabled,那麼我們不需要對改組controls進行驗證。否則,參照條件2。

第二,對改組所有controls進行驗證,因為所有問題都是單選,所以驗證radio || text 的 條件。如果一組內的control都沒有進行操作,則提示使用者。

解決思路:

這裡我使用了3個指標,對組遍歷,指標分別為

p 表示表示遍歷指標;

disabled和valicated分別平時都指向組頭,當p執行到下組的時候,執行這2個指標,分別進行判斷條件.

用questionno和prequestionno儲存屬性question的值,用於判斷組邊界.

每當執行到組邊界比如aaabb中間的ab就是組邊界,這個時候就對上一組遍歷,並且對整個組的controls進行驗證.

演算法的大致source code:

function validate()

else if(obj.getattribute("question") != null) //儲存上一組的問題no,找出組的分界點

else

if( p != 0 && questionno != prequestionno) //指標移動到組分界點,這個時候開始判斷處理上一組的問題 }

disabled++;

}if(isdisabled == false)

else

}valicated++;

}if(!validatedresult)

}valicated = p;   

}p++;  

}//邊界條件,驗證最後一組問題

firstitemaddr = disabled;

if(isdisabled == false)

else

}valicated++;

}if(!validatedresult)

}return validatedresult;

}

封裝乙個表單驗證類

封裝乙個表單驗證類 中文驗證 郵箱驗證 號碼 手機 qq 身份證 由字母 數字 下劃線組成,不能以數字開頭 header content type text html charset utf 8 class form x u return preg match reg,str 郵箱驗證 引數 ema...

乙個簡單的表單驗證JS

這個表單驗證支援空值,長度,範圍,群組,ajax 示例效果 驗證模式1 驗證模式2 使用者名稱密碼 類別類別1 類別2 類別3 類別4 專案專案1 專案2 專案3 專案4 示例 validator.add message 使用者名稱已經存在!validator.add validator.add v...

乙個表單的建立與驗證

例項展示 樣式左邊的span 設定寬度,display inline block,text align right 就可以右對齊了 js頁面的html布局 聯絡 正則校驗 的方法 function checkmobile str if str.match reg else 頁面中呼叫的方法 申請的按...