Я хочу отправить форму с помощью jQuery. Может ли кто-нибудь предоставить код, демонстрацию или ссылку на пример?
Это зависит от того, представляете ли вы, как правило, форму или через AJAX-вызов. Вы можете найти много информации по jquery.com, включая документацию с примерами. Для представления обычно форму, проверьте отправить()
Метод на этом сайте. Для Аякс, есть много разных возможностей, хотя вы, вероятно, хотите использовать Аякс()
или пост()
методы. Обратите внимание, что пост ()- это просто удобный способ, чтобы вызвать метод
Аякс () с упрощенной, и общества, интерфейс.
Критически важным ресурсом, одна я использую каждый день, что вы должны закладки как jQuery работает. Он имеет учебники по использованию jQuery и навигации слева дает доступ ко всей документации.
Примеры:
Нормальный
$('form#myForm').submit();
Аякс
$('input#submitButton').click( function() {
$.post( 'some-url', $('form#myForm').serialize(), function(data) {
// ... do something with response from server
},
'json' // I expect a JSON response
);
});
$('input#submitButton').click( function() {
$.ajax({
url: 'some-url',
type: 'post',
dataType: 'json',
data: $('form#myForm').serialize(),
success: function(data) {
// ... do something with the data...
}
});
});
Обратите внимание, что по AJAX () и после () выше методы являются эквивалентными. Существуют дополнительные параметры, которые можно добавить в запрос по AJAX () для обработки ошибок и т. д.
Вам придется использовать $("#formId").submit()
.
Обычно это вызывается из функции.
Например:
<input type='button' value='Submit form' onClick='submitDetailsForm()' />
<script language="javascript" type="text/javascript">
function submitDetailsForm() {
$("#formId").submit();
}
</script>
Более подробную информацию об этом можно получить на сайте Jquery.
когда у вас уже есть формы, которые должны теперь работать с jQuery - технология AJAX/пост теперь вы можете:
$(функция() { //вешаем на событие формы с ID=ссылки $(" и#myform в глаз").подать(функция(е) {
//предотвращения функциональность по умолчанию е.метод preventDefault();
//получаем действие-URL-адрес формы ВАР actionurl = е.currentTarget.действий;
//сделать свой собственный запрос обрабатывать результаты $.технология AJAX({ адрес: actionurl, тип: 'пост', тип: 'приложение/JSON', данные: $(" и#myform в глаз").сериализовать(), успех: функция(данных) { ... что-то делать с данными... } });
});
});
Обратите внимание, что для того, чтобы `сериализовать () функция для работы в приведенном выше примере, все элементы формы должны иметь атрибут их назвать определенными.
Пример формы:
<form id="myform" method="post" action="http://example.com/do_recieve_request">
<input type="text" size="20" value="default value" name="my_input_field">
..
.
</form>
@ПТФ - данные представлены с использованием пост в этом примере, так это означает, что вы можете получить доступ к вашим данным через
$_POST['dataproperty1']
, где dataproperty1 является "и переменной именем" в JSON.
вот пример синтаксиса, если вы используете Codeigniter с:
$pdata = $this->input->post();
$prop1 = $pdata['prop1'];
$prop1 = $pdata['prop2'];
В jQuery я бы предпочел следующее:
$("#form-id").submit()
Но опять же, вы действительно Дон'т нужно jQuery, чтобы выполнить эту задачу - просто использовать обычный JavaScript-код:
document.getElementById("form-id").submit()
Для информации<БР> если кто-то использовать
$('#formId').submit();
Не что-то вроде этого
<button name = "submit">
Потребовалось много часов, чтобы найти меня, что представить() выиграл'т работать.
Используйте его, чтобы отправить форму с помощью jQuery. Вот ссылка http://api.jquery.com/submit/
<form id="form" method="post" action="#">
<input type="text" id="input">
<input type="button" id="button" value="Submit">
</form>
<script type="text/javascript">
$(document).ready(function () {
$( "#button" ).click(function() {
$( "#form" ).submit();
});
});
</script>
это позволит отправить форму с прелоадера :
var a=$('#yourform').serialize();
$.ajax({
type:'post',
url:'receiver url',
data:a,
beforeSend:function(){
launchpreloader();
},
complete:function(){
stopPreloader();
},
success:function(result){
alert(result);
}
});
я'есть какой-то трюк, чтобы сделать форму отправки данных реформатской со случайными способ http://www.jackart4.com/article.html
Обратите внимание, что если вы уже установили себе представить прослушивателя событий для формы, заказали звонок отправить()
jQuery('#<form-id>').submit( function(e){
e.preventDefault();
// maybe some validation in here
if ( <form-is-valid> ) jQuery('#<form-id>').submit();
});
выиграл'т работа, как она попытается установить новый прослушиватель событий для этой формы'ы представить событие (которое не выполняется). Так что у вас есть доступ сам html-элемент (Unwrap с jQquery) и позвонить отправить() на этом элементе напрямую:
jQuery('#<form-id>').submit( function(e){
e.preventDefault();
// note the [0] array access:
if ( <form-is-valid> ) jQuery('#<form-id>')[0].submit();
});
Вы также можете использовать jQuery плагин формы для отправки через AJAX, также:
Обратите внимание, что в Internet Explorer есть проблемы с динамически создаваемых форм. Создан такой форме не представит в IE (9):
var form = $('<form method="post" action="/test/Delete/">' +
'<input type="hidden" name="id" value="' + myid + '"></form>');
$(form).submit();
Чтобы заставить его работать в IE создать элемент формы и прикрепить его перед отправкой, как так:
var form = document.createElement("form");
$(form).attr("action", "/test/Delete")
.attr("method", "post");
$(form).html('<input type="hidden" name="id" value="' + myid + '" />');
document.body.appendChild(form);
$(form).submit();
document.body.removeChild(form);
Создание формы, как в Примере 1, и затем прикрепить его не получится - в IE9 он бросает JScript ошибка исключение дом: HIERARCHY_REQUEST_ERR (3)
Реквизит для Томми Вт @ https://stackoverflow.com/a/6694054/694325
Решения до сих пор требует, чтобы вы знали идентификатор формы.
Используйте этот код, чтобы отправить форму без необходимости знать идентификатор:
function handleForm(field) {
$(field).closest("form").submit();
}
Например, если вы хотите обрабатывать событие click для кнопки, вы могли бы использовать
$("#buttonID").click(function() {
handleForm(this);
});
вы можете использовать его как это :
$('#formId').submit();
Или
document.formName.submit();
Т. е. трюк для динамических форм:<БР/>
$('#someform').find('input,select,textarea').serialize();
Я рекомендую универсального решения, так что вы Дон'т иметь, чтобы добавить код для каждой формы. Использовать jQuery плагин форма (http://jquery.malsup.com/form/) и добавьте этот код.
$(function(){
$('form.ajax_submit').submit(function() {
$(this).ajaxSubmit();
//validation and other stuff
return false;
});
});