2011-05-12 90 views
1

我正在使用niceforms插件來設置我的選擇框。我遇到的問題是我無法獲得正確的JavaScript代碼來激活放置在值選項中的鏈接。Javascript val()for selectbox無法正確鏈接

的niceforms網站(http://www.emblematiq.com/lab/niceforms/help/)指示我用下面的代碼:

el.lnk._onclick = el.onclick || function() { 
if(this.ref.oldClassName == "NFOnChange") { 
//insert your code here 
}}; 

這是我嘗試在操縱代碼,讓網址在選擇降鏈接下來

el.lnk._onclick = el.onclick || function() { 
if(this.ref.oldClassName == "NFOnChange") {  
//code i added  
window.location.href = $(this.ref).val(); 
}}; 

的問題是鏈接不能按預期工作,它們沒有鏈接到它們的相應值。

form class ="niceform" 
select class ="NFOnchange" 
option value = "http://link1.com" -> link1.com 
option value = "http://link2.com" -> link2.com 
option value = "http://link3.com" -> link3.com 

請任何幫助,這將不勝感激。我只需要插入正確的代碼位以使鏈接對應於它們的選項值。

+1

'val()'不是表單元素的JavaScript方法。但jQuery提供了這個。你在使用jQuery嗎?如果是這樣,你應該在你的代碼中使用它。 – 2011-05-12 23:02:34

+0

爲了告訴你實情,我不是很擅長JavaScript,只是嘗試了任何接近正常工作的代碼。理想情況下,上面的代碼應該與jquery無關(即使我在頁面上引用其他實例)。我嘗試了selectedIndex,但不斷收到類似'selectedIndex is undefined'的錯誤。 – michael 2011-05-13 00:43:55

+0

所以就像.val()不能在原始元素上工作一樣,.selecctedIndex在jQuery包裝的元素上不起作用。如果你有一個jQuery包裝的元素,.val()完全是要走的路,但如果這不起作用,你需要檢查你的假設(正如我在下面的答案中所述)。 – machineghost 2011-05-13 00:50:06

回答

0

好了,第一關「$」幾乎每個主要的JS庫使用,所以:

window.location.href = $(this.ref).val(); 

意味着什麼,除非你告訴我們您所使用的JS庫。

如果你使用jQuery,val()應該可以工作。我想確認$ this.ref)實際上是你認爲它是該行前加入這一權利:

console.log($(this.ref)) 

(以上假設你使用Firebug或Chrome開發者控制檯...如果你是不使用這些工具之一,你應該;-))

如果這表明你實際上選擇一個SELECT元素,那麼有趣的事情正在發生,但我懷疑它不是。

此外,作爲一個方面說明,我認爲你可能只是做:如果你使用jQuery

$(this) 

如果你不使用jQuery ......告訴我們你正在使用什麼,我們可以從那裏開始。

哦,如果你沒有使用任何庫,並且$是你自己的自定義函數,那麼Felix指出JS沒有內建元素的「value()」方法是正確的。您將找到的最接近的是.selectedIndex,它是任何SELECT元素的屬性,它告訴您所選選項的索引(超出所有選項)(然後通過查看可用選項列表,您可以告訴「 .value「屬性)。

+0

對不起,如果我沒有澄清這一點,但我打電話在jquery框架和niceforms插件以及。我不認爲niceforms插件依賴於jquery。 – michael 2011-05-13 00:03:15

+0

好吧,那麼我想下一步是console.log你的jQuery變量(「$(this.ref)」),看看它是否真的是你的想法。 – machineghost 2011-05-13 00:47:45

+0

(同樣,要真正看到console.log的輸出,您需要使用Firefox插件Firebug或Chrome內置的Chrome開發人員工具或類似軟件,或者您可以使用alert,但這將是痛苦的,如果你正在做任何大量的JS編碼,你真的應該得到上述工具之一。) – machineghost 2011-05-13 00:51:41