检查对象是否是文本框 - javascript

问题描述 投票:0回答:6

我明白我们可以使用(javascript)

if (typeof textbox === "object") { } 

但是有没有方法可以让我确保该对象是文本框?

javascript dom object textbox
6个回答
45
投票
var isInputText = obj instanceof HTMLInputElement && obj.type == 'text';

27
投票

截至 2016,使用此:

function isTextBox(element) {
    var tagName = element.tagName.toLowerCase();
    if (tagName === 'textarea') return true;
    if (tagName !== 'input') return false;
    var type = element.getAttribute('type').toLowerCase(),
        // if any of these input types is not supported by a browser, it will behave as input type text.
        inputTypes = ['text', 'password', 'number', 'email', 'tel', 'url', 'search', 'date', 'datetime', 'datetime-local', 'time', 'month', 'week']
    return inputTypes.indexOf(type) >= 0;
}

12
投票

您在寻找这样的东西吗?

if(textbox.tagName && textbox.tagName.toLowerCase() == "textarea") {
    alert('this is a textarea');
}

如果您需要知道是否是文本输入,可以这样做:

if(textbox.tagName && textbox.tagName.toLowerCase() == "input" && textbox.type.toLowerCase() == "text") {
    alert('this is a text input');
}

3
投票

如果您正在寻找文本输入:

if (textbox.tagName == "INPUT" && textbox.getAttribute("type") == "text") {
   // it's a text input
}

如果您正在寻找文本区域

if (textbox.tagName == "TEXTAREA") {
  // it's a textarea
}

2
投票
if(textbox instanceof HTMLInputElement && textbox.getAttribute("type") == "text") {
    alert("I'm an input text element");
}

1
投票

我想也许您想要获取对元素的引用,然后检查 .type 的返回值,即

var element = document.getElementById('element_in_question');
if(element.type == "textarea"){
  console.log('I must be textarea');
}
© www.soinside.com 2019 - 2024. All rights reserved.