Ничего не делать, если указанная выпадающая форма отсутствует

0

У меня есть сценарий, который перенаправляет пользователя на основе выбора, который они делают в раскрывающемся списке. Скрипт отлично работает, за исключением случаев, когда нет формы. Когда форма НЕ присутствует, она перенаправляет пользователей. Я думаю, это из-за того, как написан код. В нем говорится, что если США не будут выбраны, перенаправите. Поскольку нет выпадающего списка, США не выбрано. Как я могу переписать это, чтобы не перенаправлять, если нет страны доставки?

$(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
});
});
Теги:
drop-down-menu

2 ответа

1
Лучший ответ

Измените условие if, чтобы:

if($("#shipping-country").length && ($("#shipping-country").val() != "US") &&(una=="ok")){

Добавляя $("#shipping-country").length Ваше состояние будет продолжаться только в том случае, если этот элемент существует.

1

Вы можете просто поднять событие 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();
});
  • 0
    Это сработало и для меня. Спасибо!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню