从不同的jquery表单对象中选择元素

时间:2011-03-30 18:07:53

标签: jquery forms

我的 x 表格的编号都与班级productForm一致。 这些表单中的每一个都有一个隐藏的输入标记,其中包含产品名称的值:

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

我使用jquery来捕获表单提交事件。如何访问每个表单的prodName属性的值。我试过了:

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

如果页面上只有一个表单,那么

工作正常。如何访问每个表单对象的属性?

**编辑**

我应该澄清一下,获取每种形式的细节都不是问题,我需要的是从提交的特定表格中获取产品的价值。基本上我正在寻找一种方法来创建表示提交的特定表单的jquery对象。我遇到的问题是我现在捕捉事件的方式:

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

仅捕获页面上第一个表单的详细信息,无论实际提交的是哪个表单。我想要的是$(this)在函数内部来表示特定的形式。

4 个答案:

答案 0 :(得分:3)

使用:

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

方法文档http://api.jquery.com/jQuery.each/

答案 1 :(得分:2)

试试这个:

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

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

})

答案 2 :(得分:1)

表格提交......

$(".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", ...]

答案 3 :(得分:1)

您可以使用map()功能快速值映射到数组

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

工作示例:http://jsfiddle.net/hunter/KdNLL/