版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、表單與驗(yàn)證 通過(guò)HTML限制數(shù)據(jù) 通過(guò)JavaScript檢查數(shù)據(jù)格式 通過(guò)服務(wù)器端程序檢查數(shù)據(jù)的一致性 正則表達(dá)式1瑜珈網(wǎng)站的注冊(cè)頁(yè)面 Marcy為她的瑜珈網(wǎng)站增加了一個(gè)在線入會(huì)的功能,這樣一些潛在的客戶找到了合適的班級(jí)以后就可以立即注冊(cè)。 注冊(cè)頁(yè)面包括以下的信息:姓,名,email,出生日期,瑜珈經(jīng)驗(yàn)和自我介紹。 注冊(cè)頁(yè)面的第一個(gè)版本,表單用一個(gè)form來(lái)實(shí)現(xiàn),所有的輸入域都是文本框,沒(méi)有使用任何JavaScript來(lái)對(duì)用戶的輸入進(jìn)行檢查。最后數(shù)據(jù)被登錄到數(shù)據(jù)庫(kù)中。2注冊(cè)頁(yè)面的問(wèn)題 使用文本框,且不對(duì)用戶輸入進(jìn)行校驗(yàn)的話,有可能出現(xiàn)以下的問(wèn)題: 同一個(gè)用戶注冊(cè)兩次 有些用戶沒(méi)有填寫(xiě)emai
2、l Email地址里填寫(xiě)的是網(wǎng)址(格式不正確) 出現(xiàn)沒(méi)有填寫(xiě)姓和名的用戶 每個(gè)人填寫(xiě)的出生日期格式都不一樣 出現(xiàn)練習(xí)瑜珈99年的客戶3需要進(jìn)行的驗(yàn)證 程序要進(jìn)行的驗(yàn)證主要由客戶來(lái)決定,瑜珈網(wǎng)站注冊(cè)頁(yè)面可能需要以下的驗(yàn)證:n名(必填,只能有字母)n姓(必填,只能有字母)nemail(必填,要有合法的email格式)n出生日期(非必填,具有類似MM-DD-YY格式)n瑜珈經(jīng)驗(yàn)(非必填,應(yīng)當(dāng)是一個(gè)數(shù)字)n自我介紹(非必填)4多步驟的驗(yàn)證 驗(yàn)證通常是一個(gè)包括多個(gè)步驟的過(guò)程。在Web頁(yè)面上可以使用某些控件發(fā)現(xiàn)一些問(wèn)題,如使用選擇框而不是文本框;可以利用客戶端JavaScript發(fā)現(xiàn)另外一些問(wèn)題,如Ema
3、il的格式。還有一些問(wèn)題可能需要由服務(wù)器完成驗(yàn)證,如查看一個(gè)用戶名是否已經(jīng)被占用; 原則:盡可能的在Web頁(yè)面限制數(shù)據(jù),如果能通過(guò)表表單控件限制數(shù)據(jù),就不要依賴于JavaScript;不要向服務(wù)器端發(fā)送格式不正確的數(shù)據(jù)。應(yīng)該讓服務(wù)器主要考慮業(yè)務(wù)邏輯,而不是格式化問(wèn)題;服務(wù)器應(yīng)當(dāng)把重點(diǎn)放在數(shù)據(jù)的正確性上,根據(jù)現(xiàn)有數(shù)據(jù),新數(shù)據(jù)是否正確和一致。5約束XHTML進(jìn)行驗(yàn)證的第一步是修改注冊(cè)頁(yè)面的XHTML: 出生日期:不使用文本框,月份使用一個(gè)選擇框,列出12個(gè)可能的月份值;日期也使用選擇框,列出所有可能的日期值; 瑜珈經(jīng)驗(yàn):不使用文本框,把已練瑜珈的時(shí)間劃分為一些區(qū)間(無(wú),1年以內(nèi),1-2年,3-5年
4、,5年以上),從而簡(jiǎn)化問(wèn)題; 提交按鈕:因?yàn)樾枰恍㎎avaScript驗(yàn)證,所以我們禁用它,防止表單過(guò)早提交。6在JavaScript中驗(yàn)證 簡(jiǎn)單的解決方案:建立一組事件處理程序,對(duì)應(yīng)頁(yè)面上的各個(gè)域分別有一個(gè)事件處理程序。但這意味著在多個(gè)不同的域上做相同的檢查,比如確保一個(gè)域中包含一個(gè)非空值。 DRY原則:軟件設(shè)計(jì)中的一個(gè)核心原則之一稱為DRY(不要自我重復(fù):Dont Repeat Yourself)。換句話說(shuō),一旦在某處編寫(xiě)了一段代碼,就要避免在另外某個(gè)地方編寫(xiě)同樣的這段代碼。 在驗(yàn)證的問(wèn)題上,不應(yīng)該在多個(gè)地方編寫(xiě)同樣的代碼來(lái)檢查一個(gè)域是否為空。7注冊(cè)事件處理程序 新建一個(gè)JavaScri
5、pt文件enroll.js,編寫(xiě)一個(gè)initPage函數(shù),在其中為各個(gè)域的onblur事件注冊(cè)事件處理程序; 注意:我們使用了一個(gè)工具函數(shù)addEventHandler來(lái)注冊(cè)多個(gè)事件處理程序8檢查一個(gè)域是否為空 新建一個(gè)函數(shù)fieldIsFilled檢查輸入域是否為空: 這個(gè)函數(shù)適用于:姓,名,email warn和unwarn是后面定義的兩個(gè)函數(shù),用于顯示警告消息和去除警告消息9檢查email格式是否正確 新建一個(gè)函數(shù)emailIsProper檢查email格式 這里我們用到了JavaScript正則表達(dá)式,于檢測(cè)一個(gè)字符串是否匹配某個(gè)模式。 這個(gè)函數(shù)只適用email域10檢查域是否只包含字
6、母 新建一個(gè)fieldIsLetters方法檢查域是否只包含字母: 這個(gè)函數(shù)適用于:姓,名11定義一個(gè)JSON對(duì)象 上一章中,服務(wù)器端程序用JSON來(lái)表示復(fù)雜的對(duì)象結(jié)構(gòu)。不過(guò)JSON并不只用于服務(wù)器端。只要需要表示名/值映射,JSON都是絕佳的解決方案。 我們定義一個(gè)warnings對(duì)象,對(duì)于于要完成的驗(yàn)證的各個(gè)域有一個(gè)頂級(jí)映射;對(duì)于各個(gè)域上可能發(fā)生的各種類型錯(cuò)誤有一個(gè)第二層映射;對(duì)應(yīng)各個(gè)域和該域的各個(gè)警告有一個(gè)特定的錯(cuò)誤消息。12顯示警告 新建一個(gè)warn函數(shù),用于顯示警告。 它需要有兩個(gè)參數(shù),傳入域和問(wèn)題的類型。 warn函數(shù)需要完成以下工作: 確定有問(wèn)題的域的父節(jié)點(diǎn)。 創(chuàng)建一個(gè)新的,并把它作為子節(jié)點(diǎn)增加到該域的父節(jié)點(diǎn)。 查找適當(dāng)?shù)木妫黾釉摼鏋樵氐奈谋?,這樣瀏覽器就會(huì)在表單上顯示這個(gè)警告。13顯示警告(實(shí)現(xiàn)) 注意:這里我們用到了eval,它用到了我們前面定義的JSON對(duì)象warnings14去除警告消息 新建一個(gè)unwarn函數(shù),用于顯示警告。 它需要有兩個(gè)參數(shù),傳入域和問(wèn)題的類型。 warn函數(shù)需要完成以下工作: 對(duì)于傳入的域,只需要查看是否存在一個(gè)警告。如果有,則將這個(gè)警告去掉。如果沒(méi)有警告,則不需要做任何工作。 需要確
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版文化創(chuàng)意產(chǎn)業(yè)投資合作協(xié)議書(shū)模板3篇
- 綠色農(nóng)業(yè)科技與生態(tài)旅游融合
- 科技發(fā)展對(duì)現(xiàn)代安保工作提出的新挑戰(zhàn)及應(yīng)對(duì)策略
- 2025年度個(gè)人房屋抵押貸款利率調(diào)整合同
- 二零二五年度豪華度假村客房預(yù)訂與銷售合作協(xié)議3篇
- 2025年度個(gè)人汽車(chē)轉(zhuǎn)讓及二手車(chē)鑒定評(píng)估及維修服務(wù)合同3篇
- 遠(yuǎn)程教育環(huán)境下的學(xué)生安全保障措施
- 二零二五年度車(chē)輛捐贈(zèng)服務(wù)贈(zèng)與合同(公益車(chē)輛捐贈(zèng))3篇
- 2025版智慧小區(qū)物業(yè)服務(wù)與社區(qū)養(yǎng)老合作合同3篇
- 2025年度鋼材進(jìn)出口貿(mào)易代理合同2篇
- 《職業(yè)培訓(xùn)師教程》課件
- (康德一診)重慶市2025屆高三高三第一次聯(lián)合診斷檢測(cè) 英語(yǔ)試卷(含答案詳解)
- 2025年福建泉州文旅集團(tuán)招聘24人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 建筑行業(yè)砂石物資運(yùn)輸方案
- 2024年高中一年級(jí)數(shù)學(xué)考試題及答案
- 高考英語(yǔ)語(yǔ)法填空專項(xiàng)訓(xùn)練(含解析)
- 42式太極劍劍譜及動(dòng)作說(shuō)明(吳阿敏)
- 危險(xiǎn)化學(xué)品企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化課件
- 巨鹿二中骨干教師個(gè)人工作業(yè)績(jī)材料
- 《美的歷程》導(dǎo)讀課件
- 心電圖 (史上最完美)課件
評(píng)論
0/150
提交評(píng)論