国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

js高級程序設(shè)計筆記9--表單

2024-04-27 15:09:21
字體:
供稿:網(wǎng)友

表單的基本知識

表單對應(yīng)的是HTMLFormElement類型。有他自己獨有的屬性和方法。

acceptCharset:服務(wù)器能夠處理的字符集。 action:請求的URL elements:表單中所有控件的集合。 length:表單中控件的數(shù)量。 method:HTTP請求類型。 name:表單的名稱。 reset():將所有表單重置為默認值。 submit():提交表單。 target:用于發(fā)送請求和接收響應(yīng)的窗口的名稱。

提交表單

三種提交方式

<input type="submit" value="submit form"><button type="submit">submit form</button><input type="image" src="graphic.gif">

在js中,調(diào)用form的submit()方法也可以提交表單。

重置表單

<input type="reset" value="reset form"><button type="reset">reset form</button>

重置表單會使所有表單字段恢復(fù)到頁面剛加載完畢時的初始值。 在js中也可以調(diào)用form的reset()方法重置表單。

表單字段

1.共有的表單字段屬性 除了元素之外。所有表單字段都擁有相同的一組屬性。

disabled:當前字段是否被禁用。 form:指向當前字段所屬表單的指針,只讀。 name:當前字段的名稱。 readOnly:表示當前字段是否只讀。 tabIndex:表示當前字段的切換(tab)序號。 value:當前字段將被提交給服務(wù)器的值。對于文件字段來說,這個屬性是只讀的。包含著文件在計算機中的路徑。

防止表單重復(fù)提交:最常見的解決方案就是在第一次單擊后禁用提交按鈕。只要偵聽submit事件,并在該事件發(fā)生時禁用提交按鈕即可。

EventUtil.addHanler(form,"submit",function(event){ event = EventUtil.getEvent(event); var target = EventUtil.getTarget(event); var btn = target.elements["submit-btn"]; btn.disabled = true;})

注意不能通過onclick事件處理程序來實現(xiàn)這個功能。因為不同瀏覽器之間存在“時差”,有的瀏覽器會在觸發(fā)表單的submit事件之前觸發(fā)click事件(意味著提交發(fā)生之前禁用按鈕導(dǎo)致永遠都不會提交表單)。有的則相反。 2. 共有的表單字段方法 focus():得到焦點,激活表單字段。 blur():失去焦點。 HTML5為表單字段新增了一個autonfocus屬性。自動把焦點移到相應(yīng)字段。

<input type="text" autofocus>共有的表單字段事件 blur: change:對于和元素,在他們失去焦點且value值改變時觸發(fā)。對于元素,在其選項改變時觸發(fā)。 focus:

文本框腳本

//能夠顯示25個字符,但輸入不能超過50個字符<input type="text" size="25" maxlength="50" value="initial value">//字符行數(shù)為25,字符列數(shù)為5,初始值必須在<textarea>之間,不能給<textarea>指定最大字符數(shù)<textarea rows="25" cols="5">initial value</textarea>選擇文本:這兩種文本框都支持select()方法,用于選擇文本框中的所有文本。 select事件:在選擇了文本框的文本時(即使只有一個字母)就會觸發(fā)select事件。取得選擇的文本:HTML5通過兩個屬性:selectionStart和selectionEnd。(即文本選取開頭和結(jié)尾的偏移量).function getSelectedText(textbox){ return textbox.value.substring(textbox.selectionStart,textbox.selectionEnd);}

IE8及之前不支持這兩個屬性。它有個document.selection對象,其中保存著用戶在整個文檔范圍內(nèi)選擇的文本信息。

if(document.selection){ return document.selection.createRange().text;}選擇部分文本 所有文本框都有一個setSelectionRange()方法,接收兩個參數(shù):要選擇的第一個字符的索引和最后一個字符的索引。 IE8及其更早版本使用范圍選擇部分文本。function selectText(textbox,startIndex,stopIndex){ if(textbox.setSelectionRange){ textbox.setSelectionRange(startIndex,stopIndex); }else if(textbox.createTextRange){ var range = extbox.createTextRange(); range.collapse(true); range.moveStart("character",startIndex); range.moveEnd("character",stopIndex-startIndex); range.select(); } textbox.focus();}

過濾輸入

屏蔽字符 響應(yīng)文本框中插入字符操作的是keyPRess事件。因此可以通過阻止這個事件的默認行為來屏蔽此類字符。但有些瀏覽器也會對其它鍵觸發(fā)此事件。Firefox和Sarari(3.1版本之前)會對上鍵,下鍵,退格鍵和刪除鍵觸發(fā)keypress事件。在firefox中,所有由非字符鍵觸發(fā)的keypress事件對應(yīng)的字符編碼為0,safari對應(yīng)的字符編碼為8.還要確保用戶沒有按下Ctrl鍵(復(fù)制粘貼需要)例子:只允許輸入數(shù)字EventUtil.addHandler(textbox,"keypress",function(event)){ event = EventUtil.getEvent(event); var target = EventUtil.getTartget(event); var charCode = EventUtil.getCharCode(event); if(!//d/.text(String.fromCharCode(charCode)) && charCode>9 && !event.ctrlKey){ EventUtil.preventDefault(event); }}

操作剪貼板 剪貼板事件:

beforecopy: copy:在復(fù)制時觸發(fā) beforecut: cut:在發(fā)生剪切時觸發(fā) beforepaste: paste:在發(fā)生粘貼時觸發(fā)。 這些事件及相關(guān)對象會因瀏覽器而異。 要訪問剪貼板的數(shù)據(jù)可以使用clipboardData對象。在IE中這個對象是window對象的屬性。而在firefox,safari,Chrome中是event對象的屬性,但是只有在處理剪貼板事件期間此對象才有效,這是為了防止度剪貼板的未授權(quán)訪問。這個對象有三個方法: getData():從剪貼板中取得數(shù)據(jù)。接受一個參數(shù):要取得數(shù)據(jù)的格式。IE有兩種數(shù)據(jù)格式“text”和”URL”.在其它瀏覽器是一種MIME類型。返回布爾值。 setData():接收兩個參數(shù)。第一個是數(shù)據(jù)類型。第二個是放在剪貼板中的文本。返回布爾值。 clearData():清楚數(shù)據(jù)。

var EventUtil = { .... getClipboardText:function(event){ var clipboardData = (event.clipboardData || window.clipboardData); return clipboardData.getData("text"); } setClipboardText:function(event,value){ if(event.clipboardData){ return event.clipboardData.setData("text/plain",value); }else if(window.clipboardData){ return window.clipboardData.setData("text",value); } }}

選擇框腳本

HTMLSelectElement類型提供了下列屬性和方法。

add(newOption,relOption):向控件中插入元素,在relOption之前。 multiple:布爾值,表示是否多項選擇。 options:控件中所有元素的HTMLCollection。 remove(index):移除給定位置的選項。 selectedIndex:基于0的選中項的索引。 size:選擇框中可見的行數(shù)。

每個元素都有一個HTMLOptionElement對象表示。此對象有如下屬性。

index:當前選項在options集合中的索引。 label:當前選項的標簽。 selected:表示當前選項是否被選中。 text:當前選項的文本。 value:選項的值。

添加選項

//使用DOM方式var newOption = document.createElement("option");newOption.appendChild(document.createTextNode("option text"));newOption.setAttribute("value","option value");selectbox.appendChild(newOption);//使用OPtion構(gòu)造函數(shù)var newOption = new Option("option text","option value");selectbox.appendChild(newOption);//selectbox.add(newOption,undefined);
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 大渡口区| 海原县| 莱芜市| 三亚市| 厦门市| 鲁山县| 景德镇市| 青浦区| 昭苏县| 淳安县| 通许县| 湖北省| 遵义市| 万宁市| 宁海县| 金塔县| 四川省| 台前县| 元阳县| 永靖县| 莫力| 康定县| 綦江县| 哈尔滨市| 佛冈县| 崇信县| 垫江县| 祁东县| 宣汉县| 台东市| 正安县| 余江县| 泗水县| 南通市| 邯郸县| 滦南县| 张家口市| 高邑县| 集安市| 菏泽市| 枝江市|