2013-03-27 46 views
0

如果在值更改时使用方法设置表单操作,则会遇到相当棘手的问题。我有以下代码:基于选定值的jQuery更改表单操作

var actions = new Array(); 
actions[0] = "some-site.html"; 
actions[1] = "some-other-site.html"; 
actions[2] = "another-site.html"; 
etc.... 

$("select#feld-urlaubsart").change(function() { 
if ($("select#fieldname").val() !== "") { 
$("form#searchform").attr("action","http://www.mysite.com/" + 
actions[$("select#fieldname").val()]); 
} 
}); 

在另一边,我的选择看起来是这样的:

<select id="fieldname" name="fieldname"> 
<option value="0" selected="selected">All</option> 
<optgroup label="Golfurlaub mit Greenfees"> 
<option value="1">Alle Greenfee-Angebote</option> 
<option value="2">Top-Angebote</option> 
<option value="3">Golfurlaub mit 4 Tage Greenfee</option> 
</optgroup> 

其实它的工作,但我不喜欢它,因为我需要依靠value =“1”value =“2”等

现在我需要使用实际的描述作为值来兼容另一个脚本,我将这个值传递给PHP/JSON。我需要这样的

<option value="All">All</option> 
<option value="Option 1">Option 1</option> 
etc 

数据如何更改基于选择的价值形态的作用,而不是需要使用像“1”,“2”等数组键?

感谢您的任何建议。

+0

添加数字作为数据属性的

+0

我不会那样做在JavaScript中,但在PHP提交表单时,只需采取不同的操作取决于选择和处理后的重定向到任何你想要的地方。 – jeroen 2013-03-27 16:10:15

回答

0

使用的JSON对象:

actions = {"All":"some-site.html","Option1":"some-other-site.html"} 

然后

actions["All"] 

"some-site.html" 
+0

听起来不错,但我将如何正确实施?你能给我一些建议吗? ;) – Dreshar 2013-03-27 16:15:44

+0

将对象的操作数组交换出来。将您的选择的值作为属性和您的html页面作为相应的值。 – DickieBoy 2013-03-27 16:18:24

相关问题