JS 為表單元素設定name屬性的乙個 陷阱

2021-09-02 09:20:19 字數 822 閱讀 8953

一. 背景

通常, 我們在使用表單時, 會給表單元素設定乙個name屬性, 這是再正常不過的操作, 但是, 現在我建議你, 最好不要將某個表單元素的name屬性值設定為

. 二. 為什麼?

因為ie6+, opera, webkit中, 對於表單元素的elements物件, 有個名為tags的原生方法, 其作用是通過表單元素的標籤名來獲取表單元素, 如

var o =oform.elements.tags('input')[0].

雖然幾大瀏覽器都支援tags方法, 但對於乙個特殊情況, 出現了兩種結果: 當某個表單元素的name屬性值為我們來看兩個例子:

例一: 表單中不存在name屬性值為tags的表單元素

ff: 輸出undefined

ie, opera, webkit: function tags()

例二: 表單中存在name屬性值為tags的表單元素

ie, ff, opera: 輸出元素引用

webkit: function tags()

三. 解決方法

1. 避免將name屬性值設定為tags;

2. 不使用oform.elements方式來獲取表單元素;

3. 使用oform.elements.nameditem('tags')方式來獲取(推薦), 該方式各瀏覽器均支援, 且不會出現

oform.elements['tags']這樣的問題.

四. 參考資源

本文**於

html元素 表單元素及實用屬性

一 常用表單元素 上面的表單,實際提交時,將會在瀏覽器url看到提交了name name 的input與name number 的input,且提交方式為get。2 與 例 下面的拉下列表預設選中back,未指定cheacked,則預設選中首個option。bill back 三 幾點說明 1 ch...

html元素 表單元素及實用屬性

一 常用表單元素 上面的表單,實際提交時,將會在瀏覽器url看到提交了name name 的input與name number 的input,且提交方式為get。2 與 例 下面的拉下列表預設選中back,未指定cheacked,則預設選中首個option。bill back 三 幾點說明 1 ch...

表單元素與js的互動

一 關於焦點的事件 1.獲取焦點 onfocus 2.失去焦點 onblur 二 關於值的變化 1.onchange事件 當前元素失去焦點並且元素的內容發生改變而觸發此事件 2.實時監測值得變化 試想,沒有測試過 1 獲取到輸入元素,用鍵盤的onkeydown 事件實時監測 值得的變化 2 當輸入元...