var form = $('form'); // 获取表单元素 var inputs = form.find(':input'); // 获取表单内所有 input 元素 var visibleInputs = inputs.filter(function() { return $(this).closest(':hidden').length === 0; // 筛选出没有被隐藏的 input 元素 }); var names = visibleInputs.map(function() { return $(this).attr('name'); // 获取所有没有被隐藏的 input 元素的 name 属性值 }).get(); console.log(names); // 输出所有没有被隐藏的 input 元素的 name 属性值获取不到单选框和复选框的name属性
时间: 2023-11-27 20:51:18 浏览: 77
PHP用正则匹配form表单中所有元素的类型和属性值实例代码
这是因为单选框和复选框的 name 属性值需要通过它们的父元素来获取。可以使用 jQuery 的 `:input` 选择器结合 `filter` 方法和 `:radio` 和 `:checkbox` 选择器来筛选出单选框和复选框元素,然后再通过 `closest` 方法获取它们的父元素,最后获取父元素的 name 属性值即可。示例代码如下:
```
var form = $('form');
var inputs = form.find(':input');
var visibleInputs = inputs.filter(function() {
return $(this).closest(':hidden').length === 0;
});
var names = visibleInputs.map(function() {
var input = $(this);
var type = input.attr('type');
if (type === 'radio' || type === 'checkbox') {
return input.parent().attr('name');
} else {
return input.attr('name');
}
}).get();
console.log(names);
```
阅读全文