我正在通过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]
如何调试和修复这种行为?
答案 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>