ajax jQuery вызывает полностраничное обновление в FireFox

Я действительно смог воспроизвести вашу проблему в Firefox (Chrome не демонстрировал ту же проблему). Похоже, это происходило только на некоторых типах шрифтов и только когда входной контейнер был установлен для отображения блока. Одним из способов решения этой проблемы было настроить отображение входного контейнера: flex и flex-direction для столбца. Смотрите мой фрагмент ниже, демонстрирующий вышесказанное.

.testsection2{
    display: block;
    background-color: greenyellow;
}
.testsection3{
    display: flex;
    flex-direction: column;
     background-color: aqua;
}

.testsection2>input{
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif
}
.testsection3>input{
    font-family: 'Franklin Gothic Medium', 'Arial Narrow', Arial, sans-serif
}
section{
    margin-top: 20px;
    border: solid 2px black;
  
}
<section class="testsection2">
        <h3>Container: Display Block</h3>
       <p>Notice the margin variance (although slight) between inputs when they start stacking. Confirmed in firefox, not chrome though. </p>
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
    </section>

    <section class="testsection3">
        <h3>Container: Display Flex, Direction Column</h3>
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
        <input type="text" class="testinput" value="Some Text">
    </section>

14
задан Martin54 13 August 2018 в 00:06
поделиться

4 ответа

возвратите false, то, в чем Вы нуждаетесь, однако если ошибка JavaScript произойдет перед ударом той строки то затем браузер продолжит выполнение щелчка ссылки или события нажатия кнопки счастливо.

можно попробовать попытку, окружают потенциальные проблемные области блоками попытки/выгоды.

, Кроме того, Вы могли бы попробовать это:

e.preventDefault как первый оператор в Вашем обработчике. Это, как предполагается, мешает стандартному событию произойти, и я думаю, что можно назвать это впереди... Я просто не попробовал его.

Редактирование: я также хотел бы добавить что ajax ошибка: обработчик только захватывает ошибки, которые прибывают из сервера... как 403 или 500. Необходимо все еще перенести вызов ajax в попытку/выгоду.

12
ответ дан 24 October 2019 в 05:06
поделиться

Как Вы вызываете метод Ajax? Это могло быть столь же просто как отмена события, которое инициирует запрос Ajax, если это также собирается вызвать отправление на форме.

<input type="submit" onclick="doAjaxSubmit();return false;" value="Update" />

Добавление "возвращают false"; вызовет типичное, отправляют действие, которое будет отменено. Если это прибудет из текстового поля, то Вы захотите добавить e.preventDefault к обработчику для нажатия клавиши (или безотносительно) обработчик, который настраивается, чтобы сделать Ajax.

12
ответ дан 24 October 2019 в 05:06
поделиться

Действительно ли этот вызов внутри является событием щелчка? Если это, удостоверьтесь, что конец события щелчка имеет, "возвращают false". Просто мысль. Я знаю, что это - красивая старая шляпа, но, я думал, что упомяну это так или иначе.

Иначе, Ваш вызов выглядит хорошо от того, что я могу сказать.

1
ответ дан 24 October 2019 в 05:06
поделиться

Кроме того, если Ваш вход является типом =, "отправляют"..., что можно изменить его для ввода = "кнопка". Затем это не пытается отправить форму... только выполнение Вашего события "щелчка".

4
ответ дан 24 October 2019 в 05:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: