从For循环中的函数内部访问数组元素

时间:2014-03-21 15:27:05

标签: javascript jquery arrays

我希望将多个表单的ID存储在一个数组中,然后使用这些ID来使用.valid()来验证表单。表单将具有唯一的ID orderProducts1,orderProducts 2等,我需要验证每个表单中的选择下拉列表,但不想写大量的javascript来执行此操作。

我已经设法将表单ID存储在数组中,但我无法获取要在我的函数中使用的数组元素的值。

我不是一个程序员,所以任何帮助/指针都会受到赞赏。

以下示例:

var productForm = [];

var formID = document.getElementsByTagName("form");
for (var i = 0; i<formID.length; i++) {
  productForm.push(formID[i].id);
}

for (var i=0; i<productForm.length; i++)    {
    $(function()    { 
        $('I NEED THE ARRAY ELEMENT HERE #item_add').click(function()   {
            if ($("select[name=packageOption]").valid())    { 
            } 
            else    { 
                alert('Please choose a package option');
                return false;  
            }  
        }); 
    });

}

2 个答案:

答案 0 :(得分:0)

$(
    $('form').on('click','#item_add',function(){
        if ($(this).find("select[name=packageOption]").valid()){
            /* Do your fun stuff here */ 
        } 
        else    { 
            alert('Please choose a package option');
            return false;  
        }  
    });
);

答案 1 :(得分:0)

您似乎在向表单中包含ID为item_add的所有元素添加点击侦听器。

你可以通过比你正在做的更简单的方式实现这一目标。

JQuery允许根据给定的选择器匹配任意数量的元素。

所以你可以这样做:

$('#item_add form').click(function(){
    /* Your handler */
});

然而,这里有一个重要的注意事项:应该始终只有一个具有给定ID的元素。

来自W3Schools ID page id属性指定HTML元素的唯一ID(该值在HTML文档中必须是唯一的。)

而不是将item_add作为您的元素&#39; id,使它成为他们的类名之一。一个元素可以包含由空格分隔的任意数量的类名,任何数量的元素都可以具有相同的类名。

除了一个字符外,你的解决方案几乎保持不变:

$('.item_add form').click(function(){
    /* Your handler */
});