2010-09-05 3 views
2

В Prototype это Ajax сообщения вызова его формы на сервер в качестве URL закодированной строки из пар имя-значение, как вы могли бы найти в запросе HTTP GET:Каким будет эквивалент jQuery этого вызова Prototype Ajax?

function doajax() 
{ 
var current_req = new Ajax.Request('/doajax', { 
asynchronous:true, 
evalScripts:true, 
parameters: $('ajax_form').serialize(true)} 
); 
} 

Как бы вы сделать то же самое, используя JQuery?

ответ

4

Поскольку по умолчанию method для Ajax.Request является POST, эквивалентный $.post() вызов будет выглядеть следующим образом:

function doajax() 
{ 
    $.post('/doajax', $('#ajax_form').serialize(), function(respose) { 
    //do something with response if needed 
    }); 
} 

Если вы не нужно/не заботится об ответе, это будет делать:

function doajax() 
{ 
    $.post('/doajax', $('#ajax_form').serialize()); 
} 

Или, если вы специально выборки сценария, то он будет выглядеть следующим образом, используя $.ajax():

function doajax() 
{ 
    $.ajax({ 
    url:'/doajax', 
    type: 'POST', 
    data: $('#ajax_form').serialize(), 
    dataType: 'script', 
    success: function(respose) { 
     //do something with response if needed 
    } 
    }); 
} 
+0

Serialize в JQuery против прототипа является только эквивалентным, если нет параметра, но когда в прототипе его is 'true', функция возвращает объект вместо строки. Поскольку OP нуждается в результате из '.serialize (true)', версия jQuery '.serialize()' не приведет к такому же результату. См. [Здесь] (http://stackoverflow.com/questions/3414271/is-there-any-equivalent-in-jquery-for-prototype-serialize) и [здесь] (http://api.prototypejs.org/ dom/Form/serialize /) для деталей. Однако я не знаю, будет ли запрос работать, назначив строку вместо объекта. – DiegoDD

0

Использование get() запрос Ajax и serialize -ную форму:

$.get({ 
    url: '/doajax', 
    data: $('#ajax_form').serialize(), 
    success: function (data) {//success request handler 
    } 
}) 
Смежные вопросы