2010-10-27 5 views
0

Я читал об использовании ajax с jquery.Вопросы по практическому использованию ajax с jquery

Могу ли я сказать, $.ajax() - единственная функция, которая нам когда-либо нужна? то есть. нам действительно не нужны функции $.get$.post?

Наконец, скажем, мы строим эту форму ajax, мы должны привязать функцию $.ajax к кнопке отправки с помощью .click? На самом деле нам не нужно вставлять кнопку в теге формы правильно?

До сих пор я видел только учебники, в которых код jquery содержал $.ajax. Но я не знаю, как это реализовать. Было бы хорошо, если есть руководство, которое показывает полную форму jQuery ajax с полными кодами html и jquery.

ответ

0

Правильно $.ajax() - это то, что использует $.get и $.post. Это просто помощники, чтобы сделать его немного более удобным. Я всегда использую $.ajax().

Также вам не нужна форма на странице для доступа к элементам DOM с помощью jQuery, чтобы вы могли их читать, а также записывать свои данные из своего обратного вызова без формы на странице.

Я склонен сделать кнопку как

<a href="javascript:void(0)" id="partytime">Click me</a> 

Затем сделать что-то вроде следующего в вашем document.ready

$("#partytime").click(function(){ 
    //put all your ajax fun in here 
}); 
2

Короткий ответ на ваш вопрос: «да». Вы можете сделать все с помощью $.ajax(), что вы можете сделать с любым другим вызовом AJAX в jQuery. Остальные - это, по сути, ярлыки для выполнения общих задач.

Что касается вашего вопроса о размещении кнопок, вы правы в том, что вам не нужно на самом деле размещать кнопку внутри формы. На самом деле, если вы делаете все свои формы через ajax, нет необходимости иметь тег формы вообще. Тем не менее, это может сделать вашу разметку более читаемой, и она, безусловно, имеет более эвристический смысл.

Что касается учебника, вот один, который проходит через создание интерфейса AJAX от начала до конца: http://visionmasterdesigns.com/tutorial-ajax-interface-menu-using-jqueryphp/

Успехов!

0

Хотя у меня нет полного примера формы AJAX, чтобы показать вам, я могу рассказать вам, как я обычно устанавливаю ее.

Я бы обычно строил обычную форму (с тегами <form> и <button type="submit" name="formSubmit" id="formSubmit">). Тогда форма работает даже без Javascript, понимаете? В вашем JQuery:

$('#formSubmit').click(function() { 
    //Do ajax stuff 

    return false; // This stops the form from "actually" submitting. 
} 

Альтернативой селектор будет $('#formName').submit(function). Используйте то, что имеет смысл.

Чтобы ответить на другой вопрос: Да, $.get() и $.post() являются просто удобными функциями для $.ajax(). Они менее эффективны, но могут улучшить читаемость вашего кода.

0

Я часто нахожу, что короткая функция .load() полезна, так как она позволяет выполнять функции обратного вызова в отличие от .get() или .post().

Но, строго говоря, .load() - это всего лишь слегка сконфигурированный звонок .ajax(), поэтому да, .ajax() - это все, что вам действительно нужно использовать.

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