вопрос
Добрый день.
Не нашёл ответ на вопрос как получить все данные формы через JQuery/JS.
HTML
JS
Пример: https://jsfiddle.net/qm4eaqL9/
Каким образом получить реально отправленные данные через событие submit, а не просто данные формы от serializeArray? Ответ пока не нашёл, кроме как перехватывать событие click на submit, а не само событие submit.
Не нашёл ответ на вопрос как получить все данные формы через JQuery/JS.
HTML
<form id="ajaxform">
<button type="submit" name="n1" value="1">Submit 1</button>
<button type="submit" name="n1" value="2">Submit 2</button>
</form>
<div id="console"></div>
JS
$('form#ajaxform').submit(function(){
console.log($(this).serializeArray());
$('#console').html($(this).serializeArray());
return !1
})
Пример: https://jsfiddle.net/qm4eaqL9/
Каким образом получить реально отправленные данные через событие submit, а не просто данные формы от serializeArray? Ответ пока не нашёл, кроме как перехватывать событие click на submit, а не само событие submit.
Если вам интересны детали, то можно взглянуть на исходный код jQuery.
В частности, взглянем на часть тела метода serializeArray (http://code.jquery.com/jquery-latest.js):
Переменная rsubmittable есть литерал регулярного выражения, которое определяет список подлежащих сериализации html элементов:
Как видим, button не из числа таких.
rsubmitterTypes есть еще один литерал регулярного выражения, отрицание результатов проверки которого на входной строке позволяет сделать вывод о допустимости сериализации элемента.
Как видим, если элемент имеет тип "submit", то он будет пропущен и не появится в результирующем массиве сериализованных элементов.
В частности, взглянем на часть тела метода serializeArray (http://code.jquery.com/jquery-latest.js):
.filter(function() {
var type = this.type;
// Use .is(":disabled") so that fieldset[disabled] works
return this.name && !jQuery( this ).is( ":disabled" ) &&
rsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&
( this.checked || !rcheckableType.test( type ) );
Переменная rsubmittable есть литерал регулярного выражения, которое определяет список подлежащих сериализации html элементов:
rsubmittable = /^(?:input|select|textarea|keygen)/i;
Как видим, button не из числа таких.
rsubmitterTypes есть еще один литерал регулярного выражения, отрицание результатов проверки которого на входной строке позволяет сделать вывод о допустимости сериализации элемента.
rsubmitterTypes = rsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,
Как видим, если элемент имеет тип "submit", то он будет пропущен и не появится в результирующем массиве сериализованных элементов.