var form = document.getElementById("productForm"); var visibleFormElements = Array.prototype.slice.call( form.querySelectorAll( "input:not([type=hidden]), select, textarea, radio, checkbox" ) ).filter(function (element) { return element.offsetParent !== null; }); var names = visibleFormElements.map(function (element) { return element.getAttribute("name"); });获取不到单选框、复选框的那么属性
时间: 2023-11-27 22:51:57 浏览: 95
单选框和复选框的值需要通过 element.checked 属性进行获取,可以将代码修改为以下形式:
```
var form = document.getElementById("productForm");
var visibleFormElements = Array.prototype.slice.call(
form.querySelectorAll(
"input:not([type=hidden]), select, textarea, radio, checkbox"
)
).filter(function (element) {
return element.offsetParent !== null;
});
var names = visibleFormElements.map(function (element) {
if (element.type === "checkbox" || element.type === "radio") {
return element.checked ? element.getAttribute("name") : null;
}
return element.getAttribute("name");
}).filter(function (name) {
return name !== null;
});
```
这样可以正确获取单选框和复选框的 name 属性。
阅读全文