日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 前端技术 > HTML >内容正文

HTML

HTML 中表单form 的相关知识

發(fā)布時(shí)間:2024/9/30 HTML 53 豆豆
生活随笔 收集整理的這篇文章主要介紹了 HTML 中表单form 的相关知识 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在Javascript 中,頁(yè)面上的每一對(duì)<form> 標(biāo)記都解析為一個(gè)對(duì)象,即form 對(duì)象。

可以通過(guò)document.forms 獲取以源順序排列的文檔中所有form 對(duì)象的集合。

如果一個(gè)表單對(duì)象定義如下:
<form?name="frm1"?method="post"?action="login.aspx">
獲得該表單對(duì)象的方法:
??i>??document.forms["frm1"];???//?根據(jù)name屬性值
?ii>??document.forms[0];????????//?根據(jù)索引號(hào)
iii>??document.frm1;????????????//?直接根據(jù)name值獲得對(duì)象

?

form 表單應(yīng)該注意的屬性:

elements:獲取以源順序排列的給定表單中所有控件的集合。但是<input? type="image" > 對(duì)象不在此集合內(nèi)。

var?txtName?=?myform.elements[0];?????????//獲得表單的第一個(gè)元素
var?txtName?=?myform.elements["txtName"];?//獲得name屬性值為"txtName"的元素
var?txtName?=?myform.elements.txtName;????//獲得name屬性值為"txtName"的元素

?

enctype:設(shè)置或獲取表單的多用途網(wǎng)際郵件擴(kuò)展(MIME) 編碼。

??????????????????? 這個(gè)屬性的默認(rèn)值為:application/x-www-form-urlencoded

??????????????????? 如果要上傳文件,則應(yīng)該設(shè)置為:multipart/form-data

?

form 表單中的<label> 標(biāo)記:

?

每一個(gè)表單元素的文字描述都應(yīng)該使用<label> 標(biāo)記!

?????? 該標(biāo)記用于將文字綁定到對(duì)應(yīng)的表單元素上,它的for 屬性指定它所要綁定的表單元素id 值。綁定后單擊該文字,鼠標(biāo)將聚焦到對(duì)應(yīng)的文本框中或選中對(duì)應(yīng)的選項(xiàng)。

?????? 若安裝了某些桌面主題,某些表單元素還會(huì)變換顏色來(lái)予以提示,這大大提高了用戶(hù)體驗(yàn)。

示例代碼:

<form?method="post"?name="frm1">
????<label?for="txt">點(diǎn)我將聚焦到文本框</label>
????<input?type="text"?id="txt"?name="myname">
<br/>
????<label?for="rdo">點(diǎn)我將選中單選框</label>
????<input?type="radio"?id="rdo"?name="male"/>
<br/>
????<label?for="cbo">點(diǎn)我將選中復(fù)選框</label>
????<input?type="checkbox"?id="cbo"?name="hobby">
</form>
效果如下:

注意:

i >??? 每個(gè)表單元素應(yīng)當(dāng)盡量使用<label>標(biāo)簽來(lái)提高用戶(hù)體驗(yàn);

ii >?? 每個(gè)表單元素應(yīng)當(dāng)分配?name 屬性? 和?id 屬性。

????????name 屬性:用來(lái)將數(shù)據(jù)提交到服務(wù)器

???????????????id 屬性:用來(lái)在客戶(hù)端做相應(yīng)的操作;如:<label>標(biāo)簽的綁定、CSS 選擇器的使用等。

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ( name 屬性和 id 屬性應(yīng)該盡可能地使用相同的或相關(guān)的值。)

?

在客戶(hù)端,Javascript 對(duì)表單表單元素的操作,更青睞于使用其name 屬性。

因?yàn)?#xff0c;對(duì)于某些特定的表單元素(如:單選按鈕等),使用其name 屬性更易于獲得元素值,也更方便向服務(wù)器傳送數(shù)據(jù)!

?

Javascript 操作form 表單元素,比較少用的屬性:

defaultChecked?設(shè)置或獲取復(fù)選框或單選鈕的狀態(tài)。
defaultValue?設(shè)置或獲取對(duì)象的初始內(nèi)容。
disabled?設(shè)置或獲取控件的狀態(tài)。

?

提交表單

提交表單的示例:

??<form?name="frm"?method="post"?action="javascript:alert('提交成功!');">
?????<input?type="button"?value="提交功能"?
??????????? onclick="document.forms['frm'].submit();">
?????<input?type="button"?value="禁用反復(fù)提交"?
??????????? onclick="this.disabled=true;?this.form.submit();">
??</form>
效果如下:

注意:

i >?? 如果使用submit( ) 方法來(lái)提交表單,則不會(huì)觸發(fā)<form> 表單元素的onsubmit 事件

?????? 這是與用<input? type="submit">提交元素不同的地方;

ii >? 可以在按鈕的提交或點(diǎn)擊事件中,使用disabled 屬性來(lái)禁用用戶(hù)反復(fù)點(diǎn)擊提交按鈕的行為,

?????? 減少服務(wù)器的響應(yīng)負(fù)擔(dān);

?

設(shè)置文本框

i >?? 控制文本框的字符個(gè)數(shù)

<script language="javascript">
function?LessThan(_textArea){
????//返回文本框字符個(gè)數(shù)是否符號(hào)要求的boolean值
????return?_textArea.value.length?<?_textArea.getAttribute("maxlength");
}
</script>
<label?for="name">文本框:</label>
<input?type="text"?name="name"?id="name"?value="姓名"?maxlength="10"></p>
<br>
<label?for="comments">多行文本框:</label>
<textarea?name="comments"?id="comments"?cols="40"?rows="4"?maxlength="50"onkeypress="return?LessThan(this);"></textarea>

注意:多行文本框<textarea> 中的maxlength 為自定義屬性;如果在<textarea> 中輸入字符時(shí),換行也算一個(gè)字符;

?

ii >? 鼠標(biāo)經(jīng)過(guò)時(shí),自動(dòng)選中文本框

<script language="javascript">
window.onload?=?function(){
????var?txtName?=?document.getElementsByName("myName")[0];
????txtName.onmouseover?=?function(){
???????this.focus();
????};
????txtName.onfocus?=?function(){
???????this.select();
????};
}
</script>
<INPUT?TYPE="text"?NAME="myName"?value="默認(rèn)值被選中"?/>

實(shí)現(xiàn)了行為與結(jié)構(gòu)的分離。

?

設(shè)置單選按鈕

獲取選中的單選按鈕 & 設(shè)置單選按鈕被選中

<script?language="javascript">
//獲取選中項(xiàng)
function?getChoice(){
????var?oForm?=?document.forms["myForm1"];
????//radioName是單選按鈕的name屬性值
????var?aChoices?=?oForm.radioName;
????//遍歷整個(gè)單選項(xiàng)表
????for(i=0;i<aChoices.length;i++)???
????????if(aChoices[i].checked)???
????????????break;?//如果發(fā)現(xiàn)了被選中項(xiàng)則退出
????alert("您選中的是:"+aChoices[i].value);
}
//設(shè)置選中項(xiàng)
function?setChoice(_num){
????var?oForm?=?document.forms["myForm1"];
????//radioName是單選按鈕的name屬性值
????oForm.radioName[_num].checked?=?true; //其它選項(xiàng)的checked值會(huì)自動(dòng)設(shè)置為false
}
</script>
//調(diào)用代碼
<input type="button" value="獲取選中項(xiàng)" οnclick="getChoice();" />
<input type="button" value="設(shè)置第1項(xiàng)被選中" οnclick="setChoice(0);" />

需要保證同一組單選按鈕的name 屬性值相同即可。

?

設(shè)置復(fù)選框

設(shè)置復(fù)選框的“全選”、“全不選”及“反選”功能

<script?language="javascript">
function?changeBoxes(_action){
????var?myForm?=?document.forms["myForm1"];
????//myCheckbox?為所有復(fù)選框的name屬性值
????var?oCheckBox?=?myForm.myCheckbox;
?
????for(var?i=0;i<oCheckBox.length;i++)????//遍歷每一個(gè)選項(xiàng)
????????if(_action?<?0)//反選
????????????oCheckBox[i].checked?=?!oCheckBox[i].checked;
????????else?
????????????//_action為1是則全選,為0時(shí)則全不選
????????????oCheckBox[i].checked?=?_action;
}
</script>
<form?name="myForm1">
<input?type="checkbox"?name="myCheckbox">aa
<input?type="checkbox"?name="myCheckbox">bb
<input?type="button"?value="全選"?onclick="changeBoxes(1);"?/>
<input?type="button"?value="全不選"?onclick="changeBoxes(0);"?/>
<input?type="button"?value="反選"?onclick="changeBoxes(-1);"?/>
</form>

?

設(shè)置下拉列表框

下拉列表框的multiple 屬性用于設(shè)置或獲取下拉列表框是否可以選中多個(gè)選項(xiàng)。

下拉列表框默認(rèn)只能選中一項(xiàng),若要設(shè)置為可以選中多項(xiàng),則<select? multiple = "multiple"> 即可。

type 屬性:javascript 語(yǔ)言根據(jù)type 屬性的值獲得下拉列表框select 控件的類(lèi)型。

type?屬性的值為:select-multiple 或 select-one (注意:下拉列表框的類(lèi)型由multiple 屬性控制

i >??查看下拉列表框的選項(xiàng)(單選項(xiàng) & 多選項(xiàng))

<script?language="javascript">
function?getSelectValue(_myselect){
????var?oForm?=?document.forms["myForm1"];
????//根據(jù)參數(shù)(下拉列表框的name屬性值)獲得下拉菜單項(xiàng)
????var?oSelectBox?=?oForm.elements[_myselect];
????//判斷是單選還是多選
????if(oSelectBox.type?==?"select-one"){
????????var?iChoice?=?oSelectBox.selectedIndex;????//獲取選中項(xiàng)
????????alert("單選,您選中了"?+?oSelectBox.options[iChoice].text);
????}
????else{
????????var?aChoices?=?new?Array();
????????//遍歷整個(gè)下拉菜單
????????for(var?i=0;i<oSelectBox.options.length;i++)
????????????if(oSelectBox.options[i].selected)//如果被選中
??????????????//壓入到數(shù)組中
??????????????aChoices.push(oSelectBox.options[i].text);
????????//輸出結(jié)果
????????alert("多選,您選了:"?+?aChoices.join());
????}
}
</script>
<form?method="post"?name="myForm1">
<select?id="mysel"?name="mysel"?multiple="multiple"?style="height:60px;">
????<option?value="a">AA</option>
????<option?value="b">BB</option>
????<option?value="c">CC</option>
</select>
<input?type="button"?onclick="getSelectValue('mysel')"?value="查看選項(xiàng)"?/>

?

ii >??添加下拉列表框的選項(xiàng)

追加新選項(xiàng)到末尾

<script?language="javascript">
function?AddOption(Box){?//追加選項(xiàng)到末尾
????var?oForm?=?document.forms["myForm1"];
????var?oBox?=?oForm.elements[Box];
????var?oOption?=?new?Option("乒乓球","Pingpang");
????oBox.options[oBox.options.length]?=?oOption;
}
</script>

插入新選項(xiàng)到指定位置

<script?language="javascript">
function?AddOption(_select,_num){
????var?oForm?=?document.forms["myForm1"];
????var?oBox?=?oForm.elements[_select];
????var?oOption?=?new?Option("text值","value值");
????//兼容IE7,先添加選項(xiàng)到最后,再移動(dòng)
????oBox.options[oBox.options.length]?=?oOption;
????oBox.insertBefore(oOption,oBox.options[_num]);
}
</script>
<input?type="button"?value="添加乒乓球"?onclick="AddOption('myselect',1);"?/>

注意:如果直接使用insertBefore( ) 方法插入選項(xiàng),將會(huì)在IE 中出現(xiàn)一個(gè)空選項(xiàng)的bug。為了解決IE 的這個(gè)bug ,只能使用先追加新選項(xiàng)到末尾,然后再使用insertBefore( ) 方法將其移動(dòng)到相應(yīng)的位置。

?

類(lèi)似這樣:為了跳過(guò)瀏覽器的某些bug 或限制,實(shí)現(xiàn)預(yù)定目的的小技巧,通常稱(chēng)之為hack 。

?

iii >??替換某一選項(xiàng)

<script?language="javascript">
//替換選項(xiàng)
function?ReplaceOption(_select,_num){
????var?oForm?=?document.forms["myForm1"];
????var?oBox?=?oForm.elements[_select];
????var?oOption?=?new?Option("text值","value值");
????oBox.options[_num]?=?oOption;?//替換第_num?個(gè)選項(xiàng)
}
</script>
<input?type="button"?value="替換選項(xiàng)"?onclick="ReplaceOption('selName',1);"?/>

通過(guò)oBox.options[_num] = oOption 直接將創(chuàng)建的新選項(xiàng)替換掉指定位置的選項(xiàng)。

?

iv >??刪除某一選項(xiàng)

<script?language="javascript">
function?RemoveOption(_select,_num){
????var?oForm?=?document.forms["myForm1"];
????var?oBox?=?oForm.elements[_select];
????oBox.options[_num]?=?null;????//刪除選項(xiàng)
}
</script>
</head>
<body>
<select?id="mysel"?name="mysel"?multiple="multiple">
......
<input?type="button"?value="刪除選項(xiàng)"?onclick="RemoveOption('mysel',1);"?/>

直接通過(guò)oBox.options[_num] = null 刪除選項(xiàng)。

?

作者:?XuGang ??網(wǎng)名:鋼鋼
出處:?http://xugang.cnblogs.com
聲明:?本文版權(quán)歸作者和博客園共有。轉(zhuǎn)載時(shí)必須保留此段聲明,且在文章頁(yè)面明顯位置給出原文連接地址!

總結(jié)

以上是生活随笔為你收集整理的HTML 中表单form 的相关知识的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。