2014-01-19 4 views
0

Я хочу добавить некоторую информацию в базу данных. Если в базе данных уже есть какая-то информация, вы не можете добавлять некоторые сведения.немедленное перенаправление после запроса ajax

$(document).on("pagecreate", "#RDpage",function(){ 
    $("#submitR").click(function() { 
     $.getJSON("http://xxx:8080/getRD", function(data) { 

      if (data.length == 0) { 
       // send data to server 
       $.ajax({ 
        url: "http://xxx:8080/addRD", 
        type: 'GET', 
        contenttype:'application/json; charset=utf-8', 
        data: { 
         user:user, 
         RD:"Test" 
        }, 
        dataType:'JSON' 
       }); 
       $.mobile.changePage("#dialogAddRD", { transition: "pop", role: "dialog" }); 
      } else { 
       $.mobile.changePage("#dialogExistingRD", { transition: "pop", role: "dialog" }); 
      } 

     }); 
    }) 
}); 

На самом деле это работает, но не перенаправление.

Я нажимаю на кнопку, она отправляет данные на сервер, а диалог 0AddRD появляется в течение 1 секунды. Я не могу нажать на него. Затем я буду перенаправлен обратно на страницу RDpage.

Обычно диалог должен остается открытым, а затем, я могу нажать на кнопку, чтобы перейти на другую страницу

ответ

1

Аякса-функция является асинхронным и будет возвращать обещание. Как упоминалось в jQuery docs, вы использовали бы его как:

$.ajax({ 
    url: "http://xxx:8080/addRD", 
    type: 'GET', 
    contenttype:'application/json; charset=utf-8', 
    data: { 
     user:user, 
     RD:"Test" 
    }, 
    dataType:'JSON' 
}) 
.done(function(data) { 
    $.mobile.changePage("#dialogAddRD", { transition: "pop", role: "dialog" }); 
}); 
Смежные вопросы