有時候會遇到和上面類似的表單字段。我們可以給每個字段限制輸入長度,當達到輸入長度時自動切換焦點,以增強表單的易用性
複製** **如下:
複製** **如下:
(function ()
break;
} }
} }
var textbox1 = document.getelementbyid("txt1");
var textbox2 = document.getelementbyid("txt2");
var textbox3 = document.getelementbyid("txt3");
textbox1.addeventlistener("keyup", tabforward, false);
textbox2.addeventlistener("keyup", tabforward, false);
textbox3.addeventlistener("keyup", tabforward, false);
})();
**其實很簡單,判斷輸入字串長度是否和www.cppcns.com事件目標的maxlength屬性長度相等,若相等,且表單還有下乙個字段,則自動切換到下乙個焦點。
簡單說下兩個屬性:
target.form form屬性指向當前字段所屬表單的指標,它是唯讀的
form.elements elements屬性是表單中所有表單元素(字段)的集合。這個elements集合是乙個有序列表,其中包含著表單中的所有字段,例如、、和。每個表單字段在elements集合中的順序,與他們出現在標記中的順序相同,可以按照位置和name特性來訪問它們。例如:
複製** **如下:
var form = document.getelementbyid("myform");
var textbox1 = form.elements[0];
var textbox2程式設計客棧 = form.elements["tel2"]
最後,我們再來看看上面的**,發現它還存在一些問題,比如這段**
複製** **如下:
var textbox1 = document.getelementbyid("txt1");
var textbox2 = document.getelementbyid("txt2");
var textbox3 = document.getelementbyid("txt3");
textbox1.addeventlistener("keyup", tabforward, false);
textbox2.addeventlistener("keyup", tabforward, false);
textbox3.adde程式設計客棧ventlistener("keyup", tabforward, false);
發現沒有,我們給每個字段新增了相同的事件處理程式。如果在複雜的web應用程式中,對每個元素都採用這種方式,那麼結果就會有數不清的**用於新增事件處理程式。此時,可以利用事件委託來解決這個問題
其他**不變,將上面六行**換為下面的兩行會得到相同的結果,是不是感覺好多了呢
複製** **如下:
var form = document.getelementbyid("myform");
form.addeventlistener("keyup", tabforward, false);
那什麼又是事件委託呢,簡單說下原理,詳細內容這裡不解釋
事件委託利用了事件冒泡,只指定乙個事件處理程式,就可以管理某一型別的所有事件。比如,這裡的keyup事件,只需給form元素指定乙個onkeyup事件處理程式,而不必給每個字段新增事件
本文標題: 當達到輸入長度時表單自動切換焦點
本文位址:
Oracle 當輸入引數允許為空時
場景 有乙個儲存過程p test 帶有多個輸入引數code name number p test code in varchar2,namein varchar2,number in varchar2,resultlist out sys refcursor 但是業務上要求這三個引數都允許為空,也就...
Oracle 當輸入引數允許為空時
場景 有乙個儲存過程p test 帶有多個輸入引數code name number p test code in varchar2,namein varchar2,number in varchar2,resultlist out sys refcursor 但是業務上要求這三個引數都允許為空,也就...
當資料長度過大時,出現滾動條
當內容超出div時,自動出現滾動條的條件 內容必須在div中 div要設定寬高 overflow設定為auto overflow auto 當內容寬度超出div寬度,或者內容高度超出div寬度,或者同時超出,會自動出現水平 或者垂直 或者水平和垂直滾動條。overflow x auto 當內容寬度超...