2015-09-22 2 views
1

Когда пользователь вводит текст в текстовое поле на странице, он запускает событие onfocus для вызова веб-службы через вызов jQuery AJAX.Ошибка JQuery ajax, вызывающая бесконечный цикл

Если есть ошибка с вызовом ajax, я хочу отобразить сообщение пользователю через окно предупреждения, но это вызывает бесконечный цикл. Он отобразит окно предупреждения, пользователь нажмет на него, и окно предупреждения снова появится.

Как решить эту проблему?

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" /> 
+2

Не используйте оповещение, и вход не теряет фокус. – dandavis

+2

Ну, вам нужно будет либо удалить фокусное событие, либо найти лучший способ показать сообщение пользователю, поэтому фокус не нужно удалять. – epascarello

+0

Когда появляется предупреждение, текстовое поле теряет фокус. Когда предупреждение отключено, фокус восстанавливается, и функция запускается снова. –

ответ

0

Bind к фактическому действию пользователя, как onclick или onchange, вместо onfocus. Если пользователь ничего не добавил, вероятно, нет ничего полезного для отправки на сервер, верно?

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

Это не ответ на вопрос, это комментарий/вопрос –

+0

Это простой ответ на вопрос, плюс бонусный комментарий/вопрос. Но я добавил фрагмент кода для вас. – tragle

Смежные вопросы