我使用了依赖下拉列表。
<html>
<body>
<select id="parent-cat" name="parent-cat" onchange="getChildrenList(this.value)">
<option value ="">- Please Select -</option>
<option value="1">test1</option>
<option value="2">test2</option>
<option value="3">test2</option>
</select>
<select id="child-cat" name="child-cat"
onchange="getChildUrl(this.value)">
<option value ="">- Product category -</option>
</select>
<script>
function getChildrenList(parentId) {
if(parentId !=''){
var customurl = "result.php";
jQuery.ajax({
url: customurl,
type: "POST",
data : 'category_id='+parentId,
dataType: 'json',
success : function(result) {
var optionHtml;
optionHtml +='<option value="">-Product Category-</option>';
for(var option of result){
optionHtml +='<option value="'+option.url+'">'+option.name+'</option>';
}
jQuery('#child-cat').html(optionHtml);
}
});
}
}
function getChildUrl(childUrl) {
var url = childUrl;
if (url) {
window.location = url; // redirect
}
return false;
}
</script>
</body>
</html>
我把结果追加到下一个下拉列表中,一旦第一个下拉列表被改变。
我的问题是,一旦选择了第二个下拉列表,它将重定向到url,但该选项未被选中。
我正在寻找代码如何两个下拉选择一旦网址重定向后,改变第二个下拉。
请任何人在这方面帮助我。谢谢
发布于 2021-07-09 18:47:44
我认为您的问题出在getChildrenList函数中。您永远不会检查您的url是否与您当前添加的选项相同,也不会向该选项添加select参数,因此即使您已经导航到该url,它也不会保持选中状态。由于您生成下拉列表的方式(即每次加载页面时都在客户端重新生成下拉列表),您还需要检查该选项是否在每次打开页面时在客户端选中。注意:我还没有验证以下解决方案是否有效。
function getChildrenList(parentId) {
if(parentId !=''){
var customurl = "result.php";
jQuery.ajax({
url: customurl,
type: "POST",
data : 'category_id='+parentId,
dataType: 'json',
success : function(result) {
var optionHtml;
optionHtml +='<option value="">-Product Category-</option>';
for(var option of result){
var selected = (window.location == option.url) ? "selected=\"selected\"" : ""
optionHtml +='<option value="'+option.url+'" '+selected+'>'+option.name+'</option>';
}
jQuery('#child-cat').html(optionHtml);
}
});
}
}
https://stackoverflow.com/questions/54037550
复制相似问题