代码之家  ›  专栏  ›  技术社区  ›  Delgan

为什么在将“maxlength”属性设置为“input”时不能使用点符号?[已关闭]

  •  1
  • Delgan  · 技术社区  · 10 年前

    我正在使用Firefox,我想添加动态创建的 input 到文档。我使用点符号来设置属性。

    var input = document.createElement("input");
    input.placeholder = "Working";
    input.maxlength = 4;
    document.getElementById("add_here").appendChild(input)
    

    然而,我遇到了一个奇怪的问题。
    这个 placeholder 属性已正确添加,但 maxlength 未设置。

    我做了一个JSFiddle来证明这一点: https://jsfiddle.net/phc8fxba/

    我找到的唯一解决方法是使用 .setAttribute(maxlength, 4) 但这很奇怪。

    为什么点符号在这里不起作用?

    4 回复  |  直到 10 年前
        1
  •  5
  •   tobspr    10 年前

    你有错别字,应该是:

    input.maxLength = 4;
    
        2
  •  1
  •   Guffa    10 年前

    属性已命名 maxLength maxlength :

    input.maxLength = 4;
    

    HTML属性不区分大小写,但JavaScript属性区分大小写。

        3
  •  1
  •   Kaan Burak Sener    10 年前

    更改为 input.maxLength = 4; 。您的命令不起作用,因为javascript支持camel-case。

        4
  •  -2
  •   oguzhancerit    10 年前

    您需要使用setAttribute函数来设置maxlength和占位符等。点符号直接访问属性。使用getter或setter函数更好。

    var input = document.createElement("input");
    input.setAttribute('placeholder', 'Working');
    input.setAttribute('maxLength', 4);