如何使用 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 选择所有输入,不是提交、重置或按钮?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 jquery 启用表单的提交按钮?

如何使用 jQuery 提交带有部分只读输入的表单?

在自动完成输入之前,Jquery自动完成提交表单

如何禁用提交按钮,直到所有文本字段都已满并选择文件

如何使用 ajax Post 方法在没有 jQuery 的情况下提交用户输入

jQuery 选择页面重定向