使用JS检查HTML元素是否可编辑

时间:2014-11-03 21:34:49

标签: javascript contenteditable

使用JS,我们如何才能找到是否可以输入html元素。我正在尝试比较" .tagName"到" INPUT"或" TEXTAREA"但它无法区分常规输入文本/电子邮件元素和单选按钮或提交按钮。

我也试过" .isContentEditable"但当元素被继承时#34;然后我无法区分。

2 个答案:

答案 0 :(得分:7)

对于输入和textareas,请检查tagNametype,不要忘记较新的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;