使用JS,我们如何才能找到是否可以输入html元素。我正在尝试比较" .tagName"到" INPUT"或" TEXTAREA"但它无法区分常规输入文本/电子邮件元素和单选按钮或提交按钮。
我也试过" .isContentEditable"但当元素被继承时#34;然后我无法区分。
答案 0 :(得分:7)
对于输入和textareas,请检查tagName
和type
,不要忘记较新的HTML5输入类型,例如email
。这是我的代码中的一个片段,用于对存储在名为el
的变量中的元素进行测试:
var nodeName = el.nodeName.toLowerCase();
if (el.nodeType == 1 && (nodeName == "textarea" ||
(nodeName == "input" && /^(?:text|email|number|search|tel|url|password)$/i.test(el.type)))) {
// Do stuff
}
对于其他元素,isContentEditable
属性适用于所有情况,并且只应返回一个布尔值,而不是"inherit"
之类的字符串。
最后,使用document.designMode
属性可以编辑整个文档,在这种情况下document.designMode
将使用字符串值"on"
。
答案 1 :(得分:0)
使用只读属性。
来自http://www.w3schools.com/jsref/prop_text_readonly.asp:
document.getElementById("myText").readOnly = true;