Ошибка Chrome iOS в форме отправки - перенаправляет на неправильный URL - PullRequest
0 голосов
/ 17 марта 2019

Я изменяю атрибут действия формы через jQuery.Это работает на всех основных браузерах и устройствах, НО не на iOS Chrome 72.0.3626.101.

<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 code:

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

Таким образом, кнопка выбора определяет URL и должна перейти к /пример /? para ..

Вместо этого он переходит к /previous-folder/#/example/?para

Изменяющийся URL-адрес правильный, я попытался вывести на консоль и все в порядке.Тем не менее, упомянутый URL-адрес на iOS.Работает на всех других устройствах.

Кстати, на URL влияет правило перезаписи apache:

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

Как отладить и исправить такое поведение?

1 Ответ

0 голосов
/ 17 марта 2019

Я не рекомендую иметь какой-либо сценарий в событии нажатия кнопки отправки.Вместо этого используйте событие отправки формы

$("#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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...