Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery ajax错误导致无限循环_Javascript_Jquery_Asp.net_Ajax - Fatal编程技术网

Javascript Jquery ajax错误导致无限循环

Javascript Jquery ajax错误导致无限循环,javascript,jquery,asp.net,ajax,Javascript,Jquery,Asp.net,Ajax,当用户点击页面上的文本框时,会触发onfocus事件,通过jquery AJAX调用调用web服务 如果ajax调用出现错误,我希望通过一个警报框向用户显示一条消息,但这会导致无限循环。它将显示警报框,用户单击OK,警报框重新出现 我如何解决这个问题 function DoSomething() { var url = baseUrl + "/MyMethod"; $.ajax({ url: url, data: { input: 'MyData

当用户点击页面上的文本框时,会触发onfocus事件,通过jquery AJAX调用调用web服务

如果ajax调用出现错误,我希望通过一个警报框向用户显示一条消息,但这会导致无限循环。它将显示警报框,用户单击OK,警报框重新出现

我如何解决这个问题

function DoSomething() {
    var url = baseUrl + "/MyMethod";

    $.ajax({
        url: url,
        data: { input: 'MyData' },
        error: function(e) {
            alert("Display message");
        }
    });
}

<asp:Textbox id="txtMyTextBox" runat="server" onfocus="DoSomething" />
函数DoSomething(){
var url=baseUrl+“/MyMethod”;
$.ajax({
url:url,
数据:{input:'MyData'},
错误:函数(e){
警报(“显示消息”);
}
});
}

绑定到实际用户操作,如
onclick
onchange
,而不是
onfocus
。如果用户没有输入任何内容,那么可能没有有用的内容可以发送到服务器,对吗

<asp:Textbox id="txtMyTextBox" runat="server" onclick="DoSomething" />

绑定到实际用户操作,如
onclick
onchange
,而不是
onfocus
。如果用户没有输入任何内容,那么可能没有有用的内容可以发送到服务器,对吗

<asp:Textbox id="txtMyTextBox" runat="server" onclick="DoSomething" />


不要使用警报,输入不会失去焦点。您可能需要删除焦点事件,或者找到更好的方式向用户显示消息,以便不需要删除焦点。当警报弹出时,文本框会失去焦点。警报消失后,会重新获得焦点,并再次运行该功能。从UI的角度来看,这不是管理交互的好方法。我个人不希望一个网站在发生错误时从元素中移除焦点,就像使用
警报
通常也是不好的做法一样。OP可能不应该将此函数绑定到
blur
,或者如果他绑定了,则将错误消息内联并将焦点保留在元素上。我已删除警报,已将消息写入div,并且它按预期工作。不要使用警报,输入不会失去焦点。您可能需要删除焦点事件,或者找到更好的方式向用户显示消息,以便不需要删除焦点。当弹出警报时,文本框会失去焦点。警报消失后,会重新获得焦点,并再次运行该功能。从UI的角度来看,这不是管理交互的好方法。我个人不希望一个网站在发生错误时从元素中移除焦点,就像使用
警报
通常也是不好的做法一样。OP可能不应该将此函数绑定到
blur
,或者如果他绑定了,则将错误消息内联并将焦点保留在元素上。我已删除警报,将消息写入div,并且它正在按预期工作。这不是问题的答案,而是注释/问题这是问题的简单答案,加上额外的评论/问题。但是我为你添加了一个代码片段。这不是对问题的回答,而是一个注释/问题。这是对问题的简单回答,外加一个额外的注释/问题。但我为您添加了一个代码片段。