表单提交中的Chrome iOS错误-重定向到错误的URL

时间:2019-03-17 08:36:18

标签: jquery google-chrome mod-rewrite

我正在通过jQuery更改表单的action属性。该功能适用​​于所有主流浏览器和设备,但不适用于Chrome 72.0.3626.101 iOS。

<form id="filter_form" action="/previous-folder/">
    <select name="brand" id="filter_brand">
        <option value="example">Example</option>
        <option value="test">Test</option>
    </select>
    <input id="filter_submit" type="submit" value="Suchen">
</form>

jquery代码:

<script>
    $("#filter_submit").on("click", function(e){
       $("#filter_form").attr("action", "/"+$("#filter_brand").val()+"/").submit();
       return false;
    });
</script>

因此,选择按钮确定URL,并应转到/ example /?para ..

相反,它转到/previous-folder/#/example/?para

更改的URL正确,我尝试输出到控制台,这没问题。但是,iOS上提交的URL是其中提到的一个。在所有其他设备上均可使用。

URL受apache重写规则的影响:

RewriteRule  ^/home/www/(example/(.*))/(ref-.*)?$ /subapp_search/index.php?fa=1&rw=1 [L]

如何调试和修复这种行为?

1 个答案:

答案 0 :(得分:0)

我不建议在提交按钮单击事件中包含任何脚本。请改用表单提交事件

$("#filter_form").on("submit", function(e) {
  this.action =  "/" + $("#filter_brand").val() + "/"
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form id="filter_form" action="/previous-folder/">
  <select name="brand" id="filter_brand">
    <option value="example">Example</option>
    <option value="test">Test</option>
  </select>
  <input id="filter_submit" type="submit" value="Suchen">
</form>