網頁設計

當前位置 /首頁/設計製作/網頁設計/列表

如何理解JavaScript表單的基礎知識

HTMLFormElement繼承了HTMLElement,它自己獨有的屬性和方法有:

如何理解JavaScript表單的基礎知識

acceptCharset:伺服器能夠處理的字符集,等價於HTML的accept-charset特性 action:接收請求的URL,等價於HTML中的action特性。 elements:表單中所有控制元件的集合(HTMLCollection) enctype:請求的編碼型別 length:表單中控制元件的數量 method:要傳送的HTTP請求型別,通常是get或post name:表單的名稱 reset():將所有表單域重置為預設值 submit():提交表單 target:用於傳送請求和接收響應的視窗名稱;

取得form元素的引用可以是getElementById、也可以是s中數值索引或name值;

 一、提交表單

提交表單的按鈕有三種:

以上面這種方法提交表單會在瀏覽器請求傳送給伺服器之前觸發submit事件,這樣就可以驗證表單資料和決定是否允許提交表單,如下面的程式碼就可以阻止表單的提交:

var form = lementById("myForm");ventListener("submit", function () { entDefault();});

另外也可以通過js指令碼呼叫submit()方法提交表單,在呼叫submit()提交表單不會觸發submit事件。

var form = lementById("myForm");it();

第一次提交表單後如果長時間沒有迴應,使用者會變得不耐煩,往往多次點選提交按鈕,導致重複提交表單,因此應該在第一次提交表單後就禁用提交按鈕或利用onsubmit事件阻止後續操作。

var submitBtn = lementById("submitBtn");ick = function () { //處理表格和提交等等 bled = true;};

 二、重置表單

重置表單應該使用input或button:

當用戶單擊重置按鈕重置表單時,會觸發reset事件,可以在必要的時候取消重置操作:

var resetBtn = lementById("resetBtn");ventListener("reset", function () { entDefault();});

另外也可以通過js指令碼呼叫reset()方法重置表單,在呼叫reset()方法重置表單時會觸發reset事件。

var form = lementById("myForm");t();

 三、表單欄位

每個表單都有一個elements屬性,該屬性是表單中所有表單(欄位)的集合:

var form = s["myForm"];var list = [];//取得表單中第一個欄位var firstName = ents[0];();//取得表單中名為lastName的欄位var lastName = ents["lastName"];();// 取得表單中包含的.欄位的數量var fieldCount = th;(fieldCount);(ring()); //firstName,lastName,4

多個表單控制元件使用一個name(單選按鈕),那麼會返回以該name命名的NodeList:

name都是color,在訪問elements["color"]時,返回NodeList:

var list = [];var form = s["myForm"];var radios = ents["color"];(th) //3

共有的表單欄位屬性

disabled: 布林值,表示當前欄位是否被禁用; form: 指向當前欄位所屬表單的指標:只讀; name: 當前欄位的名稱; readOnly: 布林值,表示當前欄位是否只讀; tabIndex: 表示當前欄位的切換(tab)序號; type: 當前欄位的型別; value: 當前欄位被提交給伺服器的值。對檔案欄位來說,這個屬性是隻讀的,包含著檔案在計算機中的路徑

可通過submit事件在提交表單後禁用提交按鈕,但不可以用onclick事件,因為onclick在不同瀏覽器中有“時差”;

共有表單欄位方法

focus(): 啟用欄位,使其可以響應鍵盤事件; blur(): 失去焦點,觸發;使用的場合不多;

可以在偵聽頁面的load事件上新增該focus()方法:

ventListener("load", function () { s["myForm"]ents["lastName"]s();});

需要注意,第一個表單欄位是input,如果其type特性為“hidden”,或者css屬性的display和visibility屬性隱藏了該欄位,就會導致錯誤。

在HTML5中,表單中新增加了autofocus屬性,自動把焦點移動到相應欄位。

autofocus

如:

或者檢測是否設定了該屬性,沒有的話再呼叫focus()方法:

ventListener("load", function () { var form = s["myForm"]; if (form["lastName"]focus !== true) { form["lastName"]s(); };});

共有的表單欄位事件

除了支援滑鼠鍵盤更改和HTML事件之外,所有的表單欄位都支援下列3個事件:

blur: 當前欄位失去焦點時觸發;

change:input元素和textarea元素,在它們失去焦點且value值改變時觸發;select元素在其選項改變時觸發(不失去焦點也會觸發);

focus:當前欄位獲得焦點時觸發;

如:

var form = s["myForm"];var firstName = ents["firstName"];ventListener("focus", handler);ventListener("blur", handler);ventListener("change", handler);function handler() { switch () { case "focus": if (groundColor !== "red") { groundColor = "yellow"; }; break; case "blur": if (th < 1) { groundColor = "red"; } else { groundColor = ""; }; break; case "change": if (th < 1) { groundColor = "red"; } else { groundColor = ""; }; break; }}

TAG標籤:表單 JavaScript #