【Asp.net】——HTML網頁製作ID與Name的區別
今天敲程式碼的時候遇到個小麻煩:
製作了一個HTML登陸介面,想把裡邊的使用者名稱和密碼傳回WindowsForm1介面並顯示。但是總是報錯,後
來發現了原來是ID與Name的問題。
在敲牛腩的時候,對於ID的認識,就是唯一的標識,但是與Name的區別卻沒有注意。這裡遇到了,趕緊趕
緊的補上哈!
主要區別
雖然ID和Name都是標識,但是在真正用的時候,Name和ID有時候是不能相互替代的。下面就列舉一下各
自的使用範圍:
一、Name的用途:
1、作為與伺服器互動資料的HTML元素的伺服器端的標識。如:input,select,textarea和button等。我們
可以在伺服器端根據其Name通過Request.Params取得元素提交的值。這個也就能解釋我為什麼出錯了,因為在
HTML頁,我用的是ID,所以在向伺服器端傳值的時候傳不過去,才會報錯。只要把Name的值加上後就解決了!
2、在HTML頁,radio button控制元件在同一個分組類的時候,同一時間只能選中一個radio,這個分組就是根據
相同的Name屬性來實現的。
3、建立頁面中的錨點,當獲取一個頁面的超連結時,如果不用href屬性,用Name也是可以的。
4、作為物件的Identity,使用Name來引用該物件。
以上的這些都是ID不能代替的。
二、ID的作用:
1、用ID選擇相應的style sheet.
2、用<A id=...>連結目的地。
3、指令碼語言通過標籤的ID找到目的地。
4、作為標籤或塊的區分標誌。
作用域
只能用Name的情況:
1、表單(form)的控制元件名。
2、frame和window的名字。
只能用ID的情況:
1、label與form控制元件的關聯。
<label for="MyInput">My Input</label>
<input id="MyInput" type="text">
2、CSS的元素選擇機制,以#MyID的方式制定應用樣式的元素,只能用ID。
3、指令碼中獲得物件,在指令碼中直接以ID應用該ID標識的物件。
總結
真的是小小的問題,引發大大的思考,原來ID和Name還有這麼大的區別,不查一下真的不知道。在敲程式碼
的過程中還是要細心一點,多多積累這些小小的知識。