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 属性值获取不到单选框和复选框的那么属性
时间: 2023-11-27 21:51:17 浏览: 29
对于单选框和复选框,它们的值只有在被选中时才会被提交到服务器端,因此不能简单地通过获取它们的name属性值来确定是否被选中。可以通过以下代码来获取所有被选中的单选框和复选框的值:
```javascript
var checkedInputs = inputs.filter(':checked'); // 筛选出所有被选中的 input 元素
var names = checkedInputs.map(function() {
return $(this).attr('name'); // 获取所有被选中的 input 元素的 name 属性值
}).get();
console.log(names); // 输出所有被选中的 input 元素的 name 属性值
```
相关问题
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属性
这是因为单选框和复选框的 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);
```
jquery获取表单内父容器没有被display=none隐藏的input,select,radio等的表单name属性值
可以使用以下代码来获取表单内父容器没有被 display=none 隐藏的 input、select、radio 等表单元素的 name 属性值:
```javascript
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 属性值
```
上述代码中,我们首先获取表单元素,然后通过 `:input` 选择器获取表单内所有的 input 元素。接着,我们使用 `filter()` 方法筛选出没有被隐藏的 input 元素。最后,通过 `map()` 方法获取所有没有被隐藏的 input 元素的 name 属性值,并使用 `get()` 方法将其转换为数组。