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

Access Array Element from Inside a Function in a For Loop

本文关键字:内部 访问 数组元素 函数 For 循环      更新时间:2023-09-26

我希望将多个表单的id存储在一个数组中,然后使用这些id来验证使用.valid()的表单。表单将有唯一的id orderProducts1, orderproducts2等,我需要在每个表单中验证一个选择下拉,但不想写很多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;  
            }  
        }); 
    });

}

$(
    $('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;  
        }  
    });
);

您似乎正在添加一个点击侦听器与id为item_add的所有元素是在一个表单。

你可以用一种比你现在做的简单得多的方法来达到这个目的。

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

所以你可以简单地这样做:

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

但是这里有一个重要的注意事项:给定ID的元素应该总是只有一个。

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

不要将item_add作为元素的id,而是将其作为元素的类名之一。一个元素可以有任意数量的用空格分隔的类名,并且任意数量的元素可以有相同的类名。

你的解决方案将保持几乎相同,除了一个字符:

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