Вам доведеться робити вручну справи з викликом AJAX на сервер. Це також вимагає від вас перекриття форми.
Але не хвилюйтеся, це шматок пирога. Ось огляд того, як ви будете працювати з формою:
- змінити дію для надсилання за замовчуванням (завдяки переданому об’єкту події, який має
preventDefault
метод)
- візьміть усі необхідні значення з форми
- відключити HTTP-запит
- обробляти відповідь на запит
По-перше, вам доведеться скасувати дію надсилання форми так:
$("#myform").submit(function(event) {
// Cancels the form's submit action.
event.preventDefault();
});
А потім, захопіть значення даних. Припустимо, у вас є одне текстове поле.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
});
А потім знімати прохання. Давайте просто припустимо, що це POST-запит.
$("#myform").submit(function(event) {
event.preventDefault();
var val = $(this).find('input[type="text"]').val();
// I like to use defers :)
deferred = $.post("http://somewhere.com", { val: val });
deferred.success(function () {
// Do your stuff.
});
deferred.error(function () {
// Handle any errors here.
});
});
І це повинно робити це.
Примітка 2. Для розбору даних форми бажано використовувати плагін . Це зробить ваше життя справді легким, а також надасть приємну семантику, що імітує фактичну форму подання дії.
Примітка 2: Вам не потрібно використовувати відкладення. Це просто особисті переваги. Ви однаково можете зробити наступне, і це теж має працювати.
$.post("http://somewhere.com", { val: val }, function () {
// Start partying here.
}, function () {
// Handle the bad news here.
});