溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

《JavaScript高級程序設(shè)計》學(xué)習(xí)筆記(表單和數(shù)據(jù)完整性)

發(fā)布時間:2020-08-05 08:52:44 來源:ITPUB博客 閱讀:153 作者:tonyscau 欄目:編程語言

表單和數(shù)據(jù)完整性

創(chuàng)建表單元素是為了滿足用戶向服務(wù)器發(fā)送數(shù)據(jù)的需求。

表單基礎(chǔ)

HTML表單通過

元素來定義

特性:
method 屬性 設(shè)置或獲取如何將表單數(shù)據(jù)發(fā)送到服務(wù)器
action 屬性 設(shè)置或獲取表單內(nèi)容要發(fā)送處理的 URL
enctype 屬性 設(shè)置或獲取表單發(fā)送的編碼方式。默認(rèn)是application/x-www-form-urlencoded,如果要上傳文件要設(shè)成multipart/form-data。
accept 屬性 上傳文件時,列出服務(wù)器能正確處理的mime類型
acceptCharset 屬性 設(shè)置或獲取處理表單的服務(wù)器必須接受的字符編碼

輸入元素:
元素 主要的HTML輸入元素
通過type屬性確定控件:
text radio checkbox file password button submit reset hidden image

而且


自動切換到下一個
通過表單的elements集合,獲取下一個表單元素


限制textarea的字符數(shù)
例如:


允許/阻止文本框中的字符
用于驗證用戶數(shù)據(jù),或阻止無效數(shù)據(jù)輸入

阻止無效字符
設(shè)定要阻止的字符,再檢測輸入字符的charCode是否要阻止的字符

允許有效字符
設(shè)定允許的字符,再檢測輸入字符的charCode是否允許的字符

對于粘貼內(nèi)容
1 禁止粘貼
ie中,用onpaste事件阻止粘貼行為,其他還需要用oncontextmenu事件
例如:
對于用Ctrl+V進行的粘貼,可根據(jù)charCode和ctrlKey判斷按鍵是否Ctrl+V

2 失去焦點驗證
在onblur事件中檢測
注意:不能在onchange事件中檢測,當(dāng)?shù)谝淮螜z測時能正常發(fā)現(xiàn)不正確內(nèi)容,這時焦點回到原來文本框,但如果第二次并沒有修改不正確的內(nèi)容,所以沒有觸發(fā)onchange事件,即沒有觸發(fā)檢測事件直接跳過了。


使用上下鍵操作數(shù)字文本
在onkeydowm事件中操作

列表框和組合框

列表框和組合框通過HTML的元素定義了 options 集合
獲取

index 屬性 表示在options集合中的位置
例如:oListbox.option[1].index; //1

length 屬性 表示選項數(shù)目
例如:oListbox.options.length;


獲取/更改選中項
select:
selectedIndex 屬性 選中的選項的索引(沒有選中時為-1)
multiple 屬性 設(shè)為"multiple"時可以在列表框中選擇多個選項
如果選中多個選項,selectedIndex將包含第一個選項的索引

option:
selected 屬性 表示選項是否被選中
通過對選項循環(huán)判斷selected屬性,獲取所有選中選項的索引


添加選項
用javascript添加選項:
1 使用DOM方法創(chuàng)建


刪除選項
用javascript刪除選項:
1 將要刪除的選項設(shè)置為null
oListbox.options[1] = null;
2 使用remove()方法,參數(shù)為要刪除的選項的索引
oListbox.remove(0);
注意:如果用循環(huán)來刪除多個選項,最好從最大的索引開始操作,因為刪除后index索引會重置


移動選項
把選項從一個列表框移動到另一個列表框:
1 獲取要移動的選項的引用
var oOption = oListboxFrom(iIndex);
2 在另一個列表框中使用appendChild()方法添加該選項,同時該選項會從當(dāng)前列表框中刪除
oListboxTo.appendChild(oOption);
注意:跟刪除選項一樣,如果要移動多個選項,最好從最大的索引開始操作


重新排序選項
將選項進行重新排序,包括向上和向下移動:
1 獲取要移動的選項的引用
var oOption = oListbox(iIndex);
2 獲取要移動的位置的選項
向上移動:var oPrevOption = oListbox.options[iIndex-1];
向下移動:var oNextOption = oListbox.options[iIndex+1];
3 使用insertBefore()方法重新設(shè)置位置
向上移動:oListbox.insertBefore(oOption, oPrevOption);
向下移動:oListbox.insertBefore(oNextOption, oOption);

創(chuàng)建自動提示的文本框

這種文本框會檢查用戶輸入的頭幾個字符,然后給出幫助用戶輸入的列表


匹配
搜索字符串?dāng)?shù)組并返回以特定字符開頭的所有值:
1 創(chuàng)建用于存儲所有匹配的值的數(shù)組
var arrResule = new Array;
2 確保進行匹配的字符串非空,再循環(huán)找出匹配的每個值,并添加到數(shù)組中
if(arrValues[i].indexof(sText)==0) arrResult.push(arrResule[i]);
建議:在得到匹配數(shù)組后最好用sort方法排序,對于字符串可結(jié)合localeCompare方法


內(nèi)部機制
使用keyup事件調(diào)用提示程序
1 清空列表框(參考刪除選項)
2 把匹配數(shù)組的值插入到列表框(參考添加選項)
3 給列表框的選項添加onclick事件,將文本框內(nèi)容設(shè)置為當(dāng)前選中的選項
注意:由于匹配過程是區(qū)分大小寫的,建議先將字符串轉(zhuǎn)為小寫或大寫

[@more@]
向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI