gpt4 book ai didi

javascript - Jquery .Change Function with If 语句

转载 作者:行者123 更新时间:2023-12-02 14:58:59 25 4
gpt4 key购买 nike

我还有另一个问题,因为我对 javascript 和 jQuery 还很陌生。我正在使用 Ajax 来更新隐藏字段的值。 Ajax 在选择办事处(一个州可以有多个办事处)时发回正确的计费域(提供服务的州)。

这是我正在努力解决的 jQuery。

我使用这部分来确保在下拉选择之前,BillingDomainID1 类在页面加载时隐藏或显示。这效果很好。

if($("#BillingDomainID").val() != 1){
$(".BillingDomainID1").hide();
} else {
$(".BillingDomainID1").show();
};

这部分是我遇到麻烦的地方。 getOfficeInfo 部分是完美的,因为它确实按预期发布了 BillingDomainID 值,但下面的 If 语句要求我在 If 语句起作用之前单击 OfficeID 下拉值两次。为了好玩,我在 getOfficeInfo 和 if 语句之间添加了一个警报('hi'),它使 if 语句起作用。看起来 getOfficeInfo 部分更新值的速度不够快,以至于 if 语句无法正常工作。我该怎么做才能解决这个问题?

    $("#OfficeID").change(function() {  

getOfficeInfo($("#OfficeID").val(),$("#BillingDomainID"));

if ($('#BillingDomainID').val() != 1) {
$('.BillingDomainID1').hide();
return;
} else {
$('.BillingDomainID1').show()
}

});

非常感谢大家的帮助!

最佳答案

只是怀疑,但您是否在 getOfficeInfo 函数中调用 ajax?

如果是这样,那么很可能您是异步调用的,因此它不会等待服务器响应,并且 if 语句在值更新之前执行得太快。

您应该输入此代码

    if ($('#BillingDomainID').val() != 1) {
$('.BillingDomainID1').hide();
return;
} else {
$('.BillingDomainID1').show()
}

成功处理程序中的 ajax 内部。

因此您的 getOfficeInfo 函数可能如下所示

function getOfficeInfo(OID, BDID) { 
//alert(OID);
//alert(BDID);
$.post("/UserControls/getOfficeInfo.asp", {OfficeID: OID}, function(data) {
BDID.val(data);
if (data != 1) {
$('.BillingDomainID1').hide();
} else {
$('.BillingDomainID1').show()
}
});
//alert(data);
}

此更改的解释是,当您调用 $.post(...) 时,此函数会立即返回,但内部函数 function(data) {...} 在服务器响应您的请求后被调用。因此,所有取决于服务器响应的调用都应该位于该函数内,以确保您拥有当前数据。

关于javascript - Jquery .Change Function with If 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com