1.form元素對應的HTMLFormElement對象特有的屬性和方法(部分):
(1)elements:表單中所有控件的集合(HTMLCollection)
(2)reset():將表單域重置為默認值
(3)submit():提交表單
2.提交表單時,瀏覽器會在將請求發送前觸發submit事件。阻止這個事件的默認行為就可以取消表單提交。在Javascript中,以編程方式調用submit()方法也可以提交表單。而且,這種方式不許表單包含提交按鈕,但值得注意的是以此種方式提交表單時,不會觸發submit事件。
3.解決重復提交表單的辦法有兩種:在第一次提交表單后禁用提交按鈕;或者利用onsubmit事件處理程序取消后續的表單提交操作。
4.使用type特性值為『reset』的<input>和<button>都可以創建重置按鈕。JS同樣可以執行此操作,但與提交表單不同的是,JS調用reset()方法重置表單是會觸發reset事件的。
5.表單控件元素共有的屬性如下:
(1)disabled:布爾值,表示當前字段是否被禁用。
(2)form:指向當前字段所屬表單的指針;只讀。
(3)name:當前字段的名字。
(4)readOnly:布爾值,表示當前字段是否只讀。
(5)tabIndex:表示當前字段的切換序號。
(6)type:當前字段的類型。
(7)value:當前字段將被提交給服務器的值。
除了form屬性之外,可以通過JS動態修改其他任何屬性。
6.表單控件元素共有的方法如下:
(1)focus:用于將瀏覽器的焦點設置到表單字段。(不能設置到隱藏的元素中)
(2)blur
7.表單控件元素共有的事件如下:
(1)blur
(2)change:對于\<input\>和<textarea>元素,在它們失去焦點且value值改變時觸發;對于\<select\>元素,,在其選項改變時觸發。
(3)focus
**文本框腳本**
8.\<input\>元素通過『size』特性,可以指定文本框中能夠顯示的字符數;而maxlength特性則用于指定文本框可以接受的最大字符數。
9.<textarea>元素通過『rows』特性指定多行文本框的字符行數,使用『cols』特性指定多行文本框的字符列數。<textarea>的初始值要放在<textarea>和</textarea>之間。不能在HTML中給多行文本框指定最大字符數。
10.不建議使用標準DOM方法中的setAttribute/getAttribute設置/獲取文本框的值,也不要去修改textarea的第一個子節點。因為對value屬性所作的修改,不一定會反映在DOM中。應使用以下方法:
~~~
var textarea1 = document.getElementById('textarea-1');
textarea1.value = 'ken chung';
~~~
11.單行與多行文本框都支持select()方法,用于選擇文本框中的所有文本。調用這個方法時大多數瀏覽器都會將焦點設置到相應文本框中。這個技術可以讓用戶不必一個個地刪除文本,大幅提高了表單的易用性。
12.selectionStart和selectionEnd保存著基于0的數值,表示所選擇文本的范圍,配合substring()方法可以方便得取得用戶在文本框中選擇的文本。
13.setSelectionRange()方法可以選擇文本框的部分內容,這在實現高級文本輸入框時很有用,例如提供自動完成建議的文本框。
14.過濾輸入(屏蔽字符輸入、操作粘貼板)
15.在用戶填寫完當前字段時,自動將焦點切換到下一個字段,可以增強表單字段的易用性。
**選擇框腳本**
16.選擇框控件(select)共有的屬性:
(1)multiple:布爾值,表示是否允許多項選擇;等價與HTML中的multiple特性。
(2)options:控件中所有option元素的HTMLCollection。
(3)selectedIndex:基于0的選中項的索引,如果沒有選中項,則值為-1.對于支持多選的控件,只保存選項中第一項的索引。
(4)size:選擇框中可見的行數;等價于HTML中的size特性。
17.選擇框控件(select)共有的方法:
(1)add(newOption,relOption):向控件中插入新option元素,其位置在相關項之前。
(2)remove(index):移除給定位置的選項。
18.option元素對應對象的屬性:
(1)index:當前選項在options集合中的索引。
(2)label:當前選項的標簽,;等價于HTML中的label特性。
(3)selected:布爾值,表示當前選項是否被選中。
(4)text:選項的文本。
(5)value:選項的值;等價于HTML中的value特性。
同樣不推薦使用標準DOM方法修改option元素對象的屬性。
19.選擇框控件的change事件與其他表單字段的change事件觸發條件不一樣。其他表單字段的change事件是在值被修改切焦點離開當前字段時觸發,而選擇框的change事件只要選中了選項就會觸發。
20.在JavaScript中,可以利用表單字段的type屬性,連同name和value一起實現對表單的序列化。
21.表單提交期間,瀏覽器將數據發送給服務器遵循以下幾點:
(1)對表單字段的名稱和值進行URL編碼,使用&分隔。
(2)不發送禁用的表單字段。
(3)只發送勾選的復選框和單選按鈕。
(4)不發送type為reset和button的按鈕。
(5)多選選擇框中的每個選中的值單獨一個條目。
(6)在單擊提交按鈕提交表單的情況下,也會發送提交按鈕;否則,不發送提交按鈕。也包括type為image的input元素。
(7)select元素的值,就是選中的option元素的value特性的值。如果option元素沒有value特性,則是option元素的文本值。