Javascript 如果下拉列表中显示isn',则不执行任何操作;不在场

Javascript 如果下拉列表中显示isn',则不执行任何操作;不在场,javascript,jquery,drop-down-menu,Javascript,Jquery,Drop Down Menu,我有一个脚本,根据用户在下拉表单中所做的选择重定向用户。脚本工作正常,除非没有表单存在。当表单不存在时,它会重定向用户。我认为这是因为代码是如何编写的。它说,如果我们没有被选中,重定向。由于没有下拉表单,因此没有选择US。如果没有运输国,我如何将其改写为不重定向 $(document).ready(function(){ var una = "ok"; var checkIfUS = function() { if(($("#shipping-country").val() != "U

我有一个脚本,根据用户在下拉表单中所做的选择重定向用户。脚本工作正常,除非没有表单存在。当表单不存在时,它会重定向用户。我认为这是因为代码是如何编写的。它说,如果我们没有被选中,重定向。由于没有下拉表单,因此没有选择US。如果没有运输国,我如何将其改写为不重定向

$(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
仅当元素存在时,您的条件才会继续。

您可以使用jQuery引发更改事件,如果元素不存在,则不会引发:

$(document).ready(function() {    
    var una = "ok";

    $("#shipping-country").on("change", function(event){                   
        if($(this).val() != "US" && una=="ok") {
            iCheckout.insertForm();
            $("#iCheckoutForm").submit();
        }
    }).change();
});