Javascript val()for selectbox无法正确链接

问题描述:

我正在使用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

好了,第一关“$”几乎每个主要的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