JQuery / Javascript код для получения значений всех элементов формы для сценария отправки формы AJAX - PullRequest
0 голосов
/ 25 июня 2011

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

function form_submit(){
    jQuery.ajax({  
        type: 'post',  
        url: '/signup/',  
        data: map_form_elements_values('my_form'),  
        success: function(data, textStatus, jqXHR){
                        //foo
                 }
    });  
    return false; 
}

<form id="my_form" action="">
<input class="" id="name" type="text" name="last-name" />
<select class="" id="fruit" type="select" name="fruit-name" />
<option>bananas</option>
</select>
</form>

цель состоит в том, чтобы map_form_elements_values('my_form') вернул карту, которая можетиспользоваться функцией AJAX.Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

1 голос
/ 25 июня 2011

Посмотрите на плагин форм jQuery: http://jquery.malsup.com/form/

Если вам не нужны дополнительные функциональные возможности, просто сформулируйте следующее:

 myData = $("#formToSubmit").serialize();

        $.ajax({
        type: "POST",
        url: "process_form.php",
        data: myData,
        dataType: "json",
        success: function(data) { ....etc
1 голос
/ 25 июня 2011

Я недавно ответил на это:

JQuery. Как загрузить входные значения в массив?

jQuery.fn.inputs2obj=function (){
        var out={};
        var arr=this.filter(':input').each(function () {
    e=$(this);
        out[e.attr('name')]=e.val();
        }).get();
        return out;
    }

Пример использования:

inputs=$('form').find(:input).inputs2obj();

0 голосов
/ 25 июня 2011

Вы можете использовать serialize() или serializeArray()

var params = $("#my_form").serialize();
        $.post( "/signup/",params,
                 function(data,textStatus, jqXHR){foo ... } )

См. Например

http://api.jquery.com/serialize/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...