如何使用 jquery 选择所有输入,不是提交、重置或按钮?
Posted
技术标签:
【中文标题】如何使用 jquery 选择所有输入,不是提交、重置或按钮?【英文标题】:how to use jquery to select all inputs, that are not submit, reset or button? 【发布时间】:2012-03-08 09:56:25 【问题描述】:我正在尝试选择除 input type="submit/reset/button 之外的所有输入元素
我尝试过制作这样的选择器:
inputSelector = 'input:not(input[type=button], input[type=submit], input[type=reset]), textarea, select';
但这不起作用,因为提交按钮总是进入最终选择。
知道上面有什么问题。
谢谢!
【问题讨论】:
【参考方案1】:尝试修改您的选择器以链接.not(...)
,例如:
var inputs = $('input, textarea, select')
.not(':input[type=button], :input[type=submit], :input[type=reset]');
$(inputs).each(function()
console.log(this.type);
);
这使它(可以说)更容易阅读,并且应该按照您的预期工作。
【讨论】:
我在插件中使用它,所以我想我被糟糕的选择器困住了。还在尝试...【参考方案2】:这个答案可以说比迈克尔·罗宾逊的更难阅读,但我觉得它更简洁。除了运行 not()
函数,您可以使用 :input
选择它以收集所有表单元素,然后使用 :not()
选择器过滤每个不需要的输入类型。
来自 jQuery 的 API 文档 (https://api.jquery.com/input-selector/):
:input
选择器基本上选择所有表单控件。
类似“CSS”的选择器版本,:not()
选择器是独立的,也可以在 CSS 3 中使用:
var inputs = $("#theForm").find(":input:not([type=button]):not([type=submit]):not([type=reset])");
【讨论】:
以上是关于如何使用 jquery 选择所有输入,不是提交、重置或按钮?的主要内容,如果未能解决你的问题,请参考以下文章