У меня есть сценарий, который перенаправляет пользователя на основе выбора, который они делают в раскрывающемся списке. Скрипт отлично работает, за исключением случаев, когда нет формы. Когда форма НЕ присутствует, она перенаправляет пользователей. Я думаю, это из-за того, как написан код. В нем говорится, что если США не будут выбраны, перенаправите. Поскольку нет выпадающего списка, США не выбрано. Как я могу переписать это, чтобы не перенаправлять, если нет страны доставки?
$(document).ready(function(){
var una = "ok";
var checkIfUS = function() {
if(($("#shipping-country").val() != "US") &&(una=="ok")){
iCheckout.insertForm();
$("#iCheckoutForm").submit();
}
};
checkIfUS(); // check if it should redirect after dom load
$("#shipping-country").change(function(event){
checkIfUS(); // check if it should redirect on form change
});
});
Измените условие if, чтобы:
if($("#shipping-country").length && ($("#shipping-country").val() != "US") &&(una=="ok")){
Добавляя $("#shipping-country").length
Ваше состояние будет продолжаться только в том случае, если этот элемент существует.
Вы можете просто поднять событие change с помощью jQuery, если элемент не существует, он не будет поднят:
$(document).ready(function() {
var una = "ok";
$("#shipping-country").on("change", function(event){
if($(this).val() != "US" && una=="ok") {
iCheckout.insertForm();
$("#iCheckoutForm").submit();
}
}).change();
});