在For循环中从函数内部访问数组元素
Access Array Element from Inside a Function in a For Loop
我希望将多个表单的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 */
});
相关文章:
- 从模块内部访问Express装载路径
- 如何从类函数内部访问对象属性
- 从ajax调用成功内部访问变量
- 可以't从回调函数内部访问响应
- 从函数内部、类内部、模块内部访问 Angular 服务
- 如何从彼此内部访问导出的函数
- 从指令内部访问内插值
- 从函数内部访问对象属性
- 如何从 promise 内部访问 JavaScript 类的属性?(使用 ES6 而不是 Self)
- JavaScript - 尝试从另一个对象内部访问一个对象方法,得到未定义的错误
- 是否可以从指令定义内部访问指令的实例
- ajax内部访问类功能成功
- 在函数内部访问事件调用的JQuery对象
- 如何在内部访问AngularJS Directive属性;在ng重复之外
- 从 jQuery 插件内部访问公共函数
- JS对象,如何从自己内部访问对象
- 如何从事件内部访问小部件选项
- 为什么我不能从某些函数(JavaScript)内部访问变量
- 如何从插件内部访问查询中给定的上下文
- Javascript:从嵌套函数内部访问父属性