gpt4 book ai didi

ajax - jQuery Ajax(发送前和完成)在 FireFox 上正常工作,但在 IE8 和 Chrome 上无法正常工作

转载 作者:行者123 更新时间:2023-12-03 22:25:38 25 4
gpt4 key购买 nike

我在我的 MVC 应用程序中使用 jQuery ajax 版本 1.4.1(尽管我正在讨论的问题与旧的 jQuery 版本 3.2.1 相同),以在客户注册期间检查用户名是否已注册。当用户单击“检查可用性”按钮时,我会显示一个繁忙的图像来代替检查按钮(实际上隐藏了检查按钮并显示图像),同时检查服务器上的可用性,然后显示一条消息。这是一个同步调用(async:false),我使用 beforeSend: 和complete: 来显示和隐藏繁忙图像和检查按钮。这个东西在 Firefox 上运行良好,但在 IE 8 和 Chrome 中,既没有出现繁忙的图像,也没有隐藏复选按钮,而是在整个过程挂起时复选按钮保持按下状态。但可用和不可用消息正确显示。下面是代码:

用户控件中的 HTML (ascx):

<div id="available">This Username is Available</div>

div id="not_available">This Username is not available</div>

<input id="txtUsername" name="txtUsername" type="text" size="50" />&nbsp;

<button id="check" name="check" type="button">Check Availability</button>

<img id="busy" src="/Content/Images/busy.gif" />

在此用户控件的顶部,我链接了一个包含以下代码的外部 JavaScript 文件:

$(document).ready(function() {

$('img#busy').hide();
$('div#available').hide();
$('div#not_available').hide();

$("button#check").click(function() {
var available = checkUsername($("input#txtUsername").val());

if (available == "1") {
$("div#available").show();
$("div#not_available").hide();
}
else {
$("div#available").hide();
$("div#not_available").show();
}
});
});


function checkUsername(username) {

$.ajax({

type: "POST",

url: "/SomeController/SomeAction",

data: { "id": username },

timeout: 3000,

async: false,

beforeSend: function() {

$("button#check").hide();

$("img#busy").show();

},

complete: function() {

$("button#check").show();

$("img#busy").hide();

},

cache: false,

success: function(result) {

return result;

},

error: function(error) {

$("img#busy").hide();

$("button#check").show();

alert("Some problems have occured. Please try again later: " + error);

}

});

}

最佳答案

我找到了问题的答案。实际上是同步调用(async = false)让 IE 发疯。我删除了它并调整了代码,现在一切正常。

关于ajax - jQuery Ajax(发送前和完成)在 FireFox 上正常工作,但在 IE8 和 Chrome 上无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2227397/

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