У меня есть страница, в которой у меня есть куча разных вариантов, которые кто-то делает на странице визуально, и по мере того, как выбор делается или изменяется, он обновляет данные в атрибутах на кнопке «Сохранить в избранное». Все отлично работает, в том числе функция отправки AJAX в базу данных, но когда я добавляю в нее код проверки, если есть ошибка, она застревает в ошибке, даже после того, как я ее исправлю. Мне нужно перезагрузить страницу, чтобы очистить ошибку, чтобы она работала.Javascript застрял в предупреждении об ошибке, если страница не перезагружена
Вот PHP для кнопки:
<div id="saveFavoriteSection">
<div id="">Save Favorite As: <input type="text" id="groupName"></div>
<div id="addFavButton"><a data-entityid="" data-presid="" data-refid="" data-ref2id="" data-aptid="" data-insid="" data-offerid="" data-offer2id="" data-instxtid="" data-brgid="">Add to Favorites Button</a></div>
</div>
Мой Validation код в JS выглядит следующим образом:
function favButton(e){
e.preventDefault();
//Assign Variables
var pres_id = $(this).data('presid');
var ref_id = $(this).data('refid');
var ref2_id = $(this).data('ref2id');
var apt_id = $(this).data('aptid');
var ins_id = $(this).data('insid');
var offer_id = $(this).data('offerid');
var offer2_id = $(this).data('offer2id');
var ins_txt_id = $(this).data('instxtid');
var brg_id = $(this).data('brgid');
var entity_id = $(this).data('entityid');
if(pres_id == ""){
alert('Please Choose a Presentation Card Design');
}else if(ref_id == ""){
alert('Please Choose a Referral Card Design');
}else if(apt_id == ""){
if($('input[name=appointmentOn]:checked').val() == 'yes'){
alert('Please Choose an Appointment Sleeve Design');
}
}else if(brg_id == ""){
if($('input[name=burgopakOn]:checked').val() == 'yes'){
alert('Please Choose a MagicPak Design');
}
}else if(offer_id == ""){
alert('Please Choose an Offer for the Outside Referral Card');
}else if(offer2_id == ""){
if($('input[name=referralInsideOn]:checked').val() == 'yes'){
alert('Please Choose an Offer for the Inside Referral Card');
}
}else if(ins_txt_id == ""){
alert('Please Choose Copy for the Insert');
}else if(group_id == ""){
alert('Please Enter a Favorite Name');
}else{
alert('Successfully done dude!');
//Run executable code and POST here
}
}
Вот функция прослушивания вызова функции кнопки:
$('#addFavButton').delegate('a', 'click', favButton);
Я проверил код, заполнив каждый элемент, и каждое предупреждение срабатывает, когда оно должно исправить LY. Так, например, если я намеренно не укажу «ID карты презентации», появится предупреждение, в котором говорится: «Пожалуйста, выберите дизайн карты презентаций», что является правильным. Поэтому я выбираю дизайн (без перезагрузки страницы) и снова нажимаю кнопку, это дает мне ту же ошибку, хотя я исправил там ошибку на странице.
Как будто он застревает в точке первой ошибки и не пытается запустить код с самого начала. Если я перезагрузите страницу и выберете дизайн презентационной карты и повторите попытку, она отлично работает, но я не могу заставить людей приходить на этот сайт, перезагружая страницу.
Есть ли что-то, что мне не хватает на проверку, чтобы устранить ошибку и запустить функцию с самого начала без перезагрузки страницы?
'if (pres_id) ==" ") {' У вас есть дополнительная закрывающая скобка. –
Извините, не так, как в коде, исправил сообщение на странице. – Matto
Как устанавливаются различные переменные (например, «pres_id», «ref_id» ... и т. Д.), Которые вы используете для проверки? Я бы предположил, что значение не обновляется при изменении. –