Как я могу получить весь значения формы, которые были бы отправлены, не отправляя [копируют]

# I like using the codecs opening in a with 
field_names = ['latitude', 'longitude', 'date', 'user', 'text']
with codecs.open(filename,"ab", encoding='utf-8') as logfile:
    logger      = csv.DictWriter(logfile, fieldnames=field_names)
    logger.writeheader()

# some more code stuff 

    for video in aList:
      video_result = {}                                     
      video_result['date'] = video['snippet']['publishedAt']
      video_result['user'] = video['id']
      video_result['text']=video['snippet'] ['description'].encode('utf8')
      logger.writerow(video_result)    
47
задан Howard Pinsley 25 February 2009 в 22:47
поделиться

6 ответов

Плагин формы jQuery предлагает простой способ выполнить итерации по Вашим элементам формы и поместить их в строку запроса. Это могло бы также быть полезно для того, что необходимо сделать с этими значениями.

var queryString = $('#myFormId').formSerialize();

От http://malsup.com/jquery/form

Или использование прямого jQuery:

var queryString = $('#myFormId').serialize();
43
ответ дан ajon 7 November 2019 в 22:57
поделиться

В прямом JavaScript Вы могли сделать что-то подобное следующему:

var kvpairs = [];
var form = // get the form somehow
for ( var i = 0; i < form.elements.length; i++ ) {
   var e = form.elements[i];
   kvpairs.push(encodeURIComponent(e.name) + "=" + encodeURIComponent(e.value));
}
var queryString = kvpairs.join("&");

Короче говоря, это создает список пар "ключ-значение" (name=value), который тогда объединен с помощью "&"; как разделитель.

46
ответ дан Bryan Kyle 7 November 2019 в 22:57
поделиться

Спасибо Chris. Это - то, что я искал. Однако обратите внимание, что метод, сериализируют (). И существует другой метод serializeArray (), который выглядит очень полезным, который я могу использовать. Спасибо за указание на меня в правильном направлении.

var queryString = $('#frmAdvancedSearch').serialize();
alert(queryString);

var fieldValuePairs = $('#frmAdvancedSearch').serializeArray();
$.each(fieldValuePairs, function(index, fieldValuePair) {
    alert("Item " + index + " is [" + fieldValuePair.name + "," + fieldValuePair.value + "]");
});
15
ответ дан Howard Pinsley 7 November 2019 в 22:57
поделиться

Можно получить форму с помощью document.getElementById и возвратив элементы [] массив.

Вот пример.

можно также получить каждое поле формы и получить ее значение с помощью функции document.getElementById и передав в идентификаторе поля.

1
ответ дан ristonj 7 November 2019 в 22:57
поделиться

Можно использовать этот простой цикл для получения всех имен элементов и их значений.

var params = '';
for( var i=0; i<document.FormName.elements.length; i++ )
{
   var fieldName = document.FormName.elements[i].name;
   var fieldValue = document.FormName.elements[i].value;

   // use the fields, put them in a array, etc.

   // or, add them to a key-value pair strings, 
   // as in regular POST

   params += fieldName + '=' + fieldValue + '&';
}

// send the 'params' variable to web service, GET request, ...
9
ответ дан Jake 7 November 2019 в 22:57
поделиться

В зависимости от типа входных типов Вы используете на своей форме, необходимо быть в состоянии захватить их использующий стандартные выражения jQuery.

Пример:

// change forms[0] to the form you're trying to collect elements from...  or remove it, if you need all of them
var input_elements = $("input, textarea", document.forms[0]);

Выезд документация для выражений jQuery на их сайте для большего количества информации: http://docs.jquery.com/Core/jQuery#expressioncontext

1
ответ дан regex 7 November 2019 в 22:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: