Jquery 如何从用户生成动态URL';选择的动态下拉列表?
我正在使用JSON创建一个由两个列表组成的动态下拉列表。此外,我还有第三个下拉列表,它不是动态的 当用户点击Submit按钮时,它将触发一个URL,该URL将根据三个下拉列表中的选定值动态创建 例如,当用户选择“挪威”、“奥斯陆”和“全明星”时,点击提交按钮将打开“Norway_Oslo_allstars.html” 其中两个下拉列表(第一个和第三个)在OPTION标记中具有VALUE属性,我假设可以使用它们来生成动态创建的URL,但是第二个下拉列表是从JSON文件创建的,因此条目没有VALUE属性 是否还有一种方法可以根据用户的选择动态创建URL 请参见示例Jquery 如何从用户生成动态URL';选择的动态下拉列表?,jquery,json,dynamic,drop-down-menu,dynamic-url,Jquery,Json,Dynamic,Drop Down Menu,Dynamic Url,我正在使用JSON创建一个由两个列表组成的动态下拉列表。此外,我还有第三个下拉列表,它不是动态的 当用户点击Submit按钮时,它将触发一个URL,该URL将根据三个下拉列表中的选定值动态创建 例如,当用户选择“挪威”、“奥斯陆”和“全明星”时,点击提交按钮将打开“Norway_Oslo_allstars.html” 其中两个下拉列表(第一个和第三个)在OPTION标记中具有VALUE属性,我假设可以使用它们来生成动态创建的URL,但是第二个下拉列表是从JSON文件创建的,因此条目没有VALUE
以下是我的动态下拉列表和JSON代码:
<script>
$(document).ready(function(){
$("#json-one").change(function() {
var $dropdown = $(this);
$.getJSON("jsondata/data.json", function(data) {
var key = $dropdown.val();
var vals = [];
switch(key) {
case 'norway':
vals = data.norway.split(",");
break;
case 'usa':
vals = data.usa.split(",");
break;
case 'denmark':
vals = data.denmark.split(",");
}
var $jsontwo = $("#json-two");
$jsontwo.empty();
$.each(vals, function(index, value) {
$jsontwo.append("<option>" + value + "</option>");
});
});
});
$("#json-one").trigger('change');
});
</script>
首先,您可以将
VALUE
添加到第二个选项json-two
您只需更改正在循环所有vals
的JS代码,如下所示
$。每个(VAL、函数(索引、值){
$jsontwo.append(“+value+”);
});代码>
其次,您不需要对脚本进行任何更改。您可以使用以下脚本生成URL
jQuery( "button[type='submit']" ).click(function(e) {
e.preventDefault()
var var1 = $('#json-one').val()
var var2 = $('#json-two').val().toLowerCase().replace(/ /g,"")
var var3 = $('#stars').val()
var link = var1+"_"+var2+"_"+var3+".html"
console.log(link)
});
将值连接到url需要的任何格式。至于您创建的
为什么没有值呢。但是如何将我的var链接
放入action=”“
?我尝试添加
,但没有成功。为什么不改为重定向<代码>文档位置=链接代码>完美,效果很好。非常感谢你的帮助。
{
"norway": "Oslo,Bergen,Stavanger",
"usa": "New York,Chicago,Dallas",
"denmark": "Copenhagen,Aalborg,Odense"
}
jQuery( "button[type='submit']" ).click(function(e) {
e.preventDefault()
var var1 = $('#json-one').val()
var var2 = $('#json-two').val().toLowerCase().replace(/ /g,"")
var var3 = $('#stars').val()
var link = var1+"_"+var2+"_"+var3+".html"
console.log(link)
});