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
请任何帮助,这将不胜感激。我只需要插入正确的代码位以使链接对应于它们的选项值。
好了,第一关“$”几乎每个主要的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“属性)。
对不起,如果我没有澄清这一点,但我打电话在jquery框架和niceforms插件以及。我不认为niceforms插件依赖于jquery。 – michael 2011-05-13 00:03:15
好吧,那么我想下一步是console.log你的jQuery变量(“$(this.ref)”),看看它是否真的是你的想法。 – machineghost 2011-05-13 00:47:45
(同样,要真正看到console.log的输出,您需要使用Firefox插件Firebug或Chrome内置的Chrome开发人员工具或类似软件,或者您可以使用alert,但这将是痛苦的,如果你正在做任何大量的JS编码,你真的应该得到上述工具之一。) – machineghost 2011-05-13 00:51:41
'val()'不是表单元素的JavaScript方法。但jQuery提供了这个。你在使用jQuery吗?如果是这样,你应该在你的代码中使用它。 – 2011-05-12 23:02:34
为了告诉你实情,我不是很擅长JavaScript,只是尝试了任何接近正常工作的代码。理想情况下,上面的代码应该与jquery无关(即使我在页面上引用其他实例)。我尝试了selectedIndex,但不断收到类似'selectedIndex is undefined'的错误。 – michael 2011-05-13 00:43:55
所以就像.val()不能在原始元素上工作一样,.selecctedIndex在jQuery包装的元素上不起作用。如果你有一个jQuery包装的元素,.val()完全是要走的路,但如果这不起作用,你需要检查你的假设(正如我在下面的答案中所述)。 – machineghost 2011-05-13 00:50:06