jQuery Ajax Form предоставляет возможность отправлять форму асинхронно. Этот плагин действительно полезен для асинхронной загрузки файлов. Однако в этом посте я показываю только обычное поле submit. Вы можете найти больше информации о плагине
здесь .
В этой демонстрации
«Мы создадим форму и стилизуем их в начальной загрузке и инициализируем их с помощью плагина формы Jquery Ajax». Структура каталогов для этой демонстрации показана ниже:
В этой демонстрации мы отправляем поле формы на ту же страницу (только для демонстрационных целей). Вы можете использовать свойство URL
в форме Ajax или предоставить URL в атрибуте ACTION в элементе DOM формы.
Мы создали элемент формы с 3 полями ввода (имя, тема, ролл) и кнопкой отправки. HTML-разметка используется ниже:
<!DOCTYPE html> <html> <head> <title>Jquery AjaxForm With Bootstrap Style</title> <link rel="stylesheet" href="./css/bootstrap.min.css"> <link rel="stylesheet" href="./css/my-style.css"> </head> <body> <form id="my-detail-form"> <div class="panel panel-success"> <div class="panel-heading"> <h3 class="panel-title">Ajax Form With Bootstrap</h3> </div> <div class="panel-body"> <div class="alert alert-warning my-message-error"> <a href="#" class="alert-link">...</a> </div> <div class="alert alert-success my-message-success"> <a href="#" class="alert-link">...</a> </div> <input name='name' type="text" class='form-control' placeholder="Enter Your Name"> <input name='subject' type="text" class='form-control' placeholder="Enter Your Subject"> <input name='roll' type="text" class='form-control' placeholder="Enter Your Roll Number"> </div> <div class="panel-footer"> <button type="submit" class="btn btn-info">SUBMIT</button> </div> </div> </form> <script src="lib/jquery-1.10.1.min.js"></script> <script src="lib/jquery.form.min.js"></script> <script src="my-form-script.js"></script> </body> </html>
Приведенный ниже скрипт показывает инициализацию элемента Form с помощью формы Ajax. Он имеет обработчик beforeSubmit, который выполняет проверку обязательного поля. Если обязательное поле отсутствует, оно отображает сообщение об ошибке в верхней части. Он имеет обработчик успеха, чтобы указать, была ли форма отправлена успешно и получен ли ответ.
/** * Created by saan on 10/6/13. */ var TS_AJAX_FORM ={ /*ERROR Message Display Element Reference*/ MY_MESSAGE_ERR : $(".my-message-error"), /*SUCCESS Message Display Element Reference*/ MY_MESSAGE_SUC : $(".my-message-success"), /*Shows the input message and hides it in 5 seconds*/ showMessage:function(msg, type){ var message = (type === 'ERR')? this.MY_MESSAGE_ERR : this.MY_MESSAGE_SUC, txt = $(message).find('a'); $(txt).html(msg); message.fadeIn('fast',function(){ message.fadeOut(5000); }) }, /* *Handler: success, Once the form is submitted and response *arrives, it will be activated. */ successHandler: function(responseText, statusText, xhr, form){ TS_AJAX_FORM.showMessage("Form Submitted Status("+statusText+").", "SUC"); }, /* *responseText, statusText, xhr, $form: beforeSubmit, for validation Let, title and roll is your required field. *Let's show an error message if these fields are blank. */ beforeSubmitHandler:function(arr, form, options){ var isValid = true; $.each(arr,function(index, aField){ if('name' === aField.name && aField.value === ""){ TS_AJAX_FORM.showMessage("Name Can not be Empty.", "ERR"); isValid = false; }else if('roll' === aField.name && aField.value === ""){ TS_AJAX_FORM.showMessage("Roll Can not be Empty.", "ERR"); isValid = false; } }); return isValid; }, /*Initializing Ajax Form*/ initMyAjaxForm:function(){ $("#my-detail-form").ajaxForm({ beforeSubmit:this.beforeSubmitHandler, success:this.successHandler, clearForm:true }); } }; /*My Small Tutorial: Execution point*/ $(document).ready(function(){ TS_AJAX_FORM.initMyAjaxForm() });
Начальная
форма будет выглядеть так при загрузке страницы:
На приведенном ниже снимке экрана показано сообщение об ошибке, когда мы отправили поле, не входя в поле ввода рулона. Это делается с помощью обработчика beforeSubmit и возвращает false, когда roll или name пусто:
На экране ниже показано сообщение об успешном завершении, когда форма отправлена и ответ получен. Если для ‘clearForm’ или ‘resetForm’ установлено значение true, то после успешной отправки все поля формы будут очищены.