gpt4 book ai didi

javascript - 检查输入的类型是否为 "text/number/email/etc"?

转载 作者:行者123 更新时间:2023-11-27 23:38:25 27 4
gpt4 key购买 nike

我需要使用 Javascript(不是 jQuery)检查给定的输入元素是否可由用户使用键盘写入。

我想排除复选框、单选按钮、按钮、重置、提交、图像等。

是否有一种简单的方法可以在不列出所有输入类型的情况下完成此操作?

这是我当前的代码:

if (element.getAttribute === undefined) {
return false;
}

var eTag = element.tagName;
var eType = element.getAttribute('type');
var isTextInput = (eTag === 'INPUT' || eTag === 'TEXTAREA') && ( eType !== null || eType === 'text' || eType === 'password');
var isEnabledInput = element.disabled === false && element.readOnly === false;
var isContentEditable = ( element.contentEditable && element.contentEditable === true );

// stop for enabled text inputs, selects and contentEditable areas
return (isTextInput && isEnabledInput) || eType === 'SELECT' || isContentEditable;

逻辑上 && ( eType !== null || eType === 'text' || eType === 'password'); 不足以检查所有这些。

最佳答案

将其作为答案发布是因为解决了问题,但这并不是我所要求的。

我仍在等待更干净的解决方案。

var notTextual = [
'button',
'checkbox',
'hidden',
'image',
'radio',
'reset',
'submit'
];

if (element.getAttribute === undefined) {
return false;
}

var eTag = element.tagName;
var eType = element.getAttribute('type');
var isTextInput = (eTag === 'INPUT' || eTag === 'TEXTAREA') && !notTextual.contains(eType);
var isEnabledInput = element.disabled === false && element.readOnly === false;
var isContentEditable = ( element.contentEditable && element.contentEditable === true );

// stop for enabled text inputs, selects and contentEditable areas
return (isTextInput && isEnabledInput) || eType === 'SELECT' || isContentEditable;

关于javascript - 检查输入的类型是否为 "text/number/email/etc"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33923112/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com