выбор элементов из отдельных объектов формы jquery - PullRequest
0 голосов
/ 30 марта 2011

У меня есть x номер формы все с классом productForm.Каждая из этих форм имеет скрытый тег ввода со значением имени продукта:

<input type='hidden' name='prodName' value='Product Name' />

Я использую jquery для захвата события отправки формы.Как я могу получить доступ к значению атрибута prodName для каждой отдельной формы.Я попытался:

$('.productForm input[name=thing]').val();

, который работает нормально, при условии, что на странице есть только одна форма.Как я могу получить доступ к атрибуту для каждого объекта формы?

** РЕДАКТИРОВАТЬ **

Я должен уточнить, получение деталей каждой формы не проблема, что мне нужно, это получить значениепродукта из конкретной формы, которая была представлена.По сути, я ищу способ создания объекта jquery, представляющего конкретную отправленную форму.У меня проблема в том, что способ захвата события в данный момент:

$('.productForm').submit(function(){...});

только захватывает данные первой формы на странице, независимо от того, какая форма была на самом делеОтправлено.Я хочу, чтобы $(this) внутри функции представлял конкретную форму.

Ответы [ 4 ]

3 голосов
/ 30 марта 2011

Использование:

$('.productForm input[name=thing]').each(function()
{
   $(this).val();
});

Документация по методу http://api.jquery.com/jQuery.each/

2 голосов
/ 30 марта 2011

попробуйте это:

$('.productForm input[name=thing]').each(function(){

    var val = $(this).val();

})
1 голос
/ 30 марта 2011

Вы можете использовать функцию map () для быстрого отображения значений в массив

var products = $.map($(".productForm input[name='thing']"), function(n){
    return $(n).val();
});

рабочий пример: http://jsfiddle.net/hunter/KdNLL/

1 голос
/ 30 марта 2011

В форме отправить ...

$(".productForm").submit(function(){
    //Form is submitted, handle it here...
    var productName = $("input[name='prodName']", this).val();

    //Do 'return false' if you want to stop form submission
});

или, цикл через каждую форму ...

$(".productForm").each(function(){
    //Loops through forms and sticks the product name in productName
    var productName = $("input[name='prodName']", this).val();
});

или, прокрутите каждую форму и составьте список названий продуктов ...

var productNames = [];
$(".productForm").each(function(){
    //Loops through forms and sticks the product name in productName
    productNames.push( $("input[name='prodName']", this).val() );
});
//Now you have productNames which is now ["Apples", "Grapes", ...]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...