2011-06-02 63 views
0

this.form.sel2類似於document.getElementById('sel2')javascript - 元素的名稱或標識

我選擇標籤如下:

<select size=5 id="sub_player_ids" name="sub[player_ids][]"> 

,當我在我的javascript代碼把標記的名稱,即,sub[player_ids][],我得到一個語法錯誤。 我想找到一種解決方法,以便使用該元素的名稱,而不是使用該名稱。

但是使用document.getElementById('sub_player_ids')不起作用。

感謝您提供的任何建議。

請參閱我下面的JavaScript代碼:

 <input type="button" value="--&gt;" 
     onclick="moveOptions(this.form.sel1, this.form.sel2);" /><br /> 
     <input type="button" value="&lt;--" 
     onclick="moveOptions(this.form.sel2, this.form.sel1);" /> 
+0

'可保存格式[ 「complexFormElementName」]'(或'aForm.simpleFormElementName') - id需要應用,但是一些瀏覽器(如IE *)可能會與它們一起工作。 – 2011-06-02 16:16:32

+1

我沒有看到任何帶有ID或名稱爲「sel2」的元素。是什麼賦予了? – 2011-06-02 16:18:52

+4

你的ID是「sub_player_ids」,你爲什麼想要'sel2'? – 2011-06-02 16:18:53

回答

3

你的元素的idsub_player_ids,而不是sel2。所以document.getElementById("sub_player_ids")會工作。

您可能還會發現this.form["sub[player_ids][]"]可以工作。使用帶引號的形式可以讓你使用不能用於文字形式的東西。

東西要小心的是,IE7和更早的版本有一個破碎的版本getElementById,將發現,使用指定的字符串作爲name,而不是作爲一個id東西,即使東西后的頁面上實際使用它作爲一個id。 (是的,真的; more here。)有些圖書館會爲你解決這個問題(例如jQuery)。實際上,談到圖書館,一個好的圖書館確實可以幫助解決各種瀏覽器不一致問題,並提供許多便利的實用功能,讓您專注於實際的業務問題。您可以考慮查看jQuery,Prototype,YUI,Closureany of several others

2

您可以使用括號記號來代替:

this.form['sub[player_ids][]'] 

...或getElementById(),與 ID:

document.getElementById('sub_player_ids') 
1

使用document.getElementById('sub_player_ids')來獲得該元素。

1

你打錯ID

document.getElementById('sub_player_ids') 
1

確認您的選項包含id,它只會包含namesel2