2012-02-24 2 views
1

У меня есть форма, которая содержит адрес для проверки, который требует вызова веб-службы, а если он недействителен, пользователю предоставляется модальный диалог интерфейса JQuery для переопределения. Как я могу выполнить эту работу, поскольку всплывающее окно является асинхронным, завершение проверки завершено до того, как пользователь сможет выбрать, следует ли избегать правила проверки?Проверка JQuery с потенциальным взаимодействием с пользователем

Редактировать: Я думаю, что я принял дизайнерское решение, которое, вероятно, лучше с точки зрения разделения проблем. Чем больше я думаю об этом, тем выше диалог, позволяющий существенно редактировать данные на этапе валидации. Таким образом, проверка будет синхронизирована, и переопределение будет выполняться в контексте процесса ввода данных. (FYI, есть нечто большее, чем просто переопределение, также существует потенциальный список выбора для выбора из возможных совпадающих адресов, поэтому выбор одного из них существенно изменит базовые данные, которые вы проверяете в первую очередь).

+0

show Код для ясности, pls – mindandmedia

ответ

-1

вы можете передать функцию обратного вызова $ .getJSON или $ .ajax так:

$.getJSON('ajax/test.json', {address: $('#myInput').val()}, function(data) { 
    var items = []; 

    $.each(data, function(key, val) { 
    items.push('<li id="' + key + '">' + val + '</li>'); 
    }); 

    $('<ul/>', { 
    'class': 'my-new-list', 
    html: items.join('') 
    }).appendTo('body'); 
}); 

это от documentation

здесь немного больше с учетом ваших потребностей

$.getJSON('validateAddress.json', {address: $('#myInput').val()}, function(data) 
{ 
    if(data.result == 'ok') 
    { 
     $('#override').dialog(); 
    } else { 
     alert('invalid address'); 
    } 
}); 
+0

$ .getJSON является асинхронным, ему нужен синхронный – Har

+0

, если он переводит логику в обратный вызов, это все равно должно быть работа, может быть, я не правильно понял вопрос. – mindandmedia

+0

Это диалоговое окно jquery, а не предупреждение, и поэтому не блокирует. – Rich

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