html 中表單元素input type="hidden"的作用(轉)


隱藏域在頁面中對於用戶是不可見的,在表單中插入隱藏域的目的在於收集或發送信息,以利於被處理表單的程序所使用

(隱藏只是在網頁頁面上面不顯示輸入框,但是雖然隱藏了,還是具有form傳值功能。

一般用來傳值,而不必讓用戶看到。)

 

基本語法: 
<input type="hidden" name="field_name" value="value"> 

作用: 

1 隱藏域在頁面中對於用戶是不可見的,在表單中插入隱藏域的目的在於收集或發送信息,以利於被處理表單的程序所使用。瀏覽者單擊發送按鈕發送表單的時候,隱藏域的信息也被一起發送到服務器。 

2 有些時候我們要給用戶一信息,讓他在提交表單時提交上來以確定用戶身份,如sessionkey,等等.當然這些東西也能用cookie實現,但使用隱藏域就簡單的多了.而且不會有瀏覽器不支持,用戶禁用cookie的煩惱。 

3 有些時候一個form里有多個提交按鈕,怎樣使程序能夠分清楚到底用戶是按那一個按鈕提交上來的呢?我們就可以寫一個隱藏域,然后在每一個按鈕處加上onclick="document.form.command.value="xx""然后我們接到數據后先檢查command的值就會知道用戶是按的那個按鈕提交上來的。 

4 有時候一個網頁中有多個form,我們知道多個form是不能同時提交的,但有時這些form確實相互作用,我們就可以在form中添加隱藏域來使它們聯系起來。 

JavaScript不支持全局變量,但有時我們必須用全局變量,我們就可以把值先存在隱藏域里,它的值就不會丟失了。 

6 還有個例子,比如按一個按鈕彈出四個小窗口,當點擊其中的一個小窗口時其他三個自動關閉.可是IE不支持小窗口相互調用,所以只有在父窗口寫個隱藏域,當小窗口看到那個隱藏域的值是close時就自己關掉。 

例子: 使用hidden實現點擊提交按鈕數字加1 

數值自增.htm 

復制代碼
代碼如下:

<form action="數值自增.ashx" method="post"> 
<input type="hidden" name="_viewstate" value="a" /> 
<input type="hidden" name="_div" value="@n" /> 
<!-- <input name="txt" type="text" value="@value" />--> 
<div>@n</div> 
<input type="submit" value="click" /> 
</form> 


使用一般處理程序實現 

數值自增.ashx 

復制代碼
代碼如下:

int n = 0; 
public void ProcessRequest (HttpContext context) { 
context.Response.ContentType = "text/html"; 

string path = context.Request.MapPath("數值自增.htm"); 
string html = System.IO.File.ReadAllText(path); 
//判斷頁面是否是第一次加載 
string viewstate = context.Request.Form["_viewstate"]; 
if (!string.IsNullOrEmpty(viewstate)) 

//點擊按鈕 post 
//獲取隱藏域的值 
string s = context.Request.Form["_div"]; 
if (int.TryParse(s, out n)) 

n++; 
html = html.Replace("@n",n.ToString()); 


else 

//頁面首次加載,給div和div對應的隱藏域賦值 
html = html.Replace("@n", n.ToString()); 

context.Response.Write(html); 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM