Я понимаю, что мы можем использовать (javascript)
if (typeof textbox === "object") { }
но существуют ли методы, которые позволят мне гарантировать, что объект является текстовым полем?
Я понимаю, что мы можем использовать (javascript)
if (typeof textbox === "object") { }
но существуют ли методы, которые позволят мне гарантировать, что объект является текстовым полем?
var isInputText = obj instanceof HTMLInputElement && obj.type == 'text';
Как 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;
}
Вы ищете что-то вроде этого?
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');
}
Если это текстовый ввод, который вы ищете:
if (textbox.tagName == "input" && textbox.getAttribute("type") == "text") {
// it a text input
}
Если вы ищете текстовую область
if (textbox.tagName == "textarea") {
// it a textarea
}
Я думаю, вы, возможно, захотите получить ссылку на элемент, а затем проверить возвращаемое значение .type i.e.
var element = document.getElementById('element_in_question');
if(element.type == "textarea"){
console.log('I must be textarea');
}
if(textbox instanceof HTMLInputElement && textbox.getAttribute("type") == "text") {
alert("I'm an input text element");
}