我有這個想法是因為我想完成乙個自動補全的input部件,最基本的功能是: - 如果input沒有內容,這隱藏下拉框 - 反之,顯示下拉框
我找到了乙個也許不是很完美的實現方案,描述中可能會有一些細微的區別,不過我還是很希望能做這個簡單的分享
首先,我們構造乙個簡單的form表單,僅僅只有乙個input
當輸入一些值,我設定input的邊框顏色為綠的,下面是乙個例子:
我通過html表單驗證去判斷是否為空,所以,這裡我使用了required
屬性
// valid:當input輸入值也合法值時採用的樣式
#input:valid
這時,當有輸入的時候,input表現的很好,邊框顏色也有了相應的變化:
但是,這裡有個問題,如果使用者輸入的是空格,那麼邊框顏色也會發生改變。
原理上看,這種表現是正常的,因為輸入框確實有了內容。 但是,實際上,我不想讓空格來觸發自動補全彈窗 所以這還不能滿足我們的需求,我要做更細緻的檢查
html提供我們利用正則去驗證輸入框內容的屬性:pattern
,這裡也嘗試使用該屬性來完善
因為想把空格視為非法輸入,我使用s+
,這個很簡單,匹配乙個或者多個任何非空白字元
使用這種方式,的確奏效了,如果使用者輸入空格,輸入框沒有任何變化
但了個是,但是這個正則還是有問題,因為只允許輸入非空白字元,所以你在任何位置輸入空白都會導致輸入框校驗失敗
這裡可以使用其他的正則來匹配,比如^s+?.+
現在輸入框可以和空格混合輸入了! 但是如果當前校驗失敗,輸入框沒有任何提示,這很不友好! 但我寫這篇文章的時候,有乙個問題我不斷思考,能不能只用css給非法驗證也加一種樣式?
這裡不能使用:invalid
,因為有required
字段,即使我們什麼也不做,輸入框也會有非正確狀態的樣式提示,這很奇怪。
檢視了相關資源,我們可以使用:placeholder-shown
來達到我們的目的
大概思路是: - 增加placeholder - 如果輸入框如果使用者輸入了內容,但還不合法做乙個處理 - 最後利用css的覆蓋特性,新增乙個當驗證成功的樣式處理
最終的css大概是這樣
/* 當填充的時候展示紅色,所以這裡預設是校驗失敗 */
input:not(:placeholder-shown)
/* 當驗證成功的時候,採用這個樣式 */
input:valid
這裡有乙個小小的demo
上面的內容就是如何只用css來提供乙個基礎表單驗證功能,說是只用css,其實也利用的pattern
能接受正規表示式,哈哈,所以最根本的是如何寫出最優的正規表示式。
web實現basic與FORM驗證
在web應用中,要經常對使用者的身份進行驗證的,但其實tomcat下配合servlet的話,也可以實現一些簡單的驗證,以往 可能大家都會忽略之,現再簡單總結學習之。1 basic驗證機制 這有點象windows整合驗證機制,就是驗證時彈出乙個視窗,要你輸入使用者名稱和密碼。做法如下 然後在tomca...
FORM表單驗證
方法一 利用form的onsubmit 函式 經常使用 html 注意 1.onsubmit屬性內容一定要有return關鍵字,否則函式會直接執行,不會返回 2.validateform一定要返回乙個boolean型別的返回值 3.提交按鈕要寫成submit型別的 方法二 利用input型別為sub...
form表單驗證
輸入框驗證 注 1 必填驗證需要在必填處加入 class required 2 長度最大值需要在input加入自定義屬性maxlen,例如maxlen 3 function validatorform validatorlist i id change function layer.msg 必填項不...