在Javascript中,给定id元素(String格式),如何检查id元素是否引用下拉列表元素或文本输入元素?
true如果id引用下拉列表(<select>)元素或文本输入元素,则该函数应返回false.
Den*_*ret 26
如果您已经包含了jquery,则可以使用is函数:
$('#myid').is('input, select')
Run Code Online (Sandbox Code Playgroud)
或者可能
$('#myid').is('input, textarea, select')
Run Code Online (Sandbox Code Playgroud)
如果你想也包括textarea
要么
$('#myid').is('input:not([type="button"]), textarea, select')
Run Code Online (Sandbox Code Playgroud)
(如果它是textare或下拉列表或不是按钮的输入,则返回true).
您拥有jquery选择器的全部功能,可以根据您的具体需求调整查询.
演示:http://jsfiddle.net/ELuEJ/(尝试更改html)
jfr*_*rej 24
尝试使用:
document.getElementById('idNameGoesHere').tagName
所以功能可以是:
function isSelectOrTextField(idName) {
var element = document.getElementById(idName);
if(element.tagName === 'SELECT') {return true;}
if(element.tagName === 'INPUT' && element.type === 'text') {return true;}
return false;
}
Run Code Online (Sandbox Code Playgroud)
您可以扩展它以检查<textarea>.
编辑:
或者选择jbabey的答案,因为它正在使用nodeName并且格式更好.
您可以使用DOM元素的nodeName和type属性来确定。无需外部库。
var isSelectOrTextInput = function (element) {
var nodeName = element.nodeName;
return nodeName === 'SELECT' ||
(nodeName === 'INPUT' &&
element.type.toLowerCase() === 'text');
};
Run Code Online (Sandbox Code Playgroud)
工作示例:http : //jsfiddle.net/ytHQD/