У меня есть процесс на моем веб-сайте, который содержит несколько шагов. Для навигации у меня есть «предыдущие» и «следующие» кнопки. Этими кнопками являются <a>
элементы с атрибутом href (чтобы перейти к предыдущему и следующему шагу).preventDefault() overruled by window.location
Следующая кнопка работает как дверь для следующего шага, но также для проверки некоторых полей текущего шага, прежде чем она будет продолжена.
Так это то, что происходит при нажатии на следующую кнопку:
- HREF значение спасся в переменной
$url
. preventDefault()
препятствует открытию ссылки на URL.- Выполнены некоторые проверки достоверности.
- Если они возвращают «true», то
$url
будет загружен в window.location.
Для некоторых шагов мне нужно сделать еще одну проверку для пользователя с помощью поля подтверждения. Но здесь возникает проблема:
Проблема:
Когда confirm()
возвращает «ложь», пользователь не должен перейти на следующую страницу. Но функция window.location
функции 1 «перекрывает» функцию preventDefault()
функции 2.
1. По умолчанию следующая кнопка функции:
$('#next_link').click(function(e) {
var url = $(this).attr('href');
e.preventDefault();
if(wiz_validate_required() && wiz_is_step_done()) {
window.location = url;
}
});
2. Функция окно подтверждения:
$('.dimensions-check').click(function(e) {
if(confirm('Have you specified the dimensions in millimeters?') == false) {
e.preventDefault();
}
});
Что размеры проверить? Разве это и next_link сосуществуют где-то? Возможно, вам нужно создать функцию, которая использует поле подтверждения, и вернуть true или false, а затем выполнить событие click, но вам нужно поделиться больше кода, чтобы получить прямой ответ! – codegaze
можете ли вы поставить оператор if на шаге 1, чтобы не устанавливать '$ url', если требуется вторая проверка? то есть. 'if (! secondCheckRequired) {// установить $ url}' – Sionnach733
@idioteque dimensions-check и next_link действительно существуют и есть и ID и класс на одной и той же кнопке. Это проблема. Мне нужно, чтобы эти две функции были разделены, в противном случае проблем не было, и я использовал каждую функцию. И больше нет кода для обмена, потому что только эти две функции конфликтуют друг с другом. Кстати, функции wiz_validate_required() и wiz_is_step_done() не дают проблемы, я это проверил. – Robbert