选择元素中的重定向问题

Posted

技术标签:

【中文标题】选择元素中的重定向问题【英文标题】:Redirect issue in select element 【发布时间】:2019-05-30 22:38:33 【问题描述】:

我使用了依赖项下拉菜单。

 <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,但未选择该选项。

我正在寻找代码如何在更改第二个下拉列表后重定向 url 后选择两个下拉列表。

请任何人帮助我。谢谢

【问题讨论】:

您可以使用级联下拉库并在成功或错误时使用回调。 jqueryscript.net/demo/… @WaqasAhmed,你能根据我的问题帮助我吗,我没有清除这个链接,一旦下拉列表被更改,我就会重定向到 url @WaqasAhmed,我希望这里不需要级联下拉 【参考方案1】:

我相信您的问题在于 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);
             
        ); 
   

【讨论】:

以上是关于选择元素中的重定向问题的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以让浏览器页面避免 Pyqt5 中的重定向?

apache中的重定向

什么是 Youtube API 中的重定向 URI?

Google OAUTH:请求中的重定向URI与注册的重定向URI不匹配

跨域 ajax 不适用于移动 Safari 中的重定向

Linux中的重定向