使用Javascript设置表单文本字段的最大长度,不起作用

时间:2017-03-30 19:15:42

标签: javascript html

所以,我在我的javascript文件中有这个:

function yeahbaby() {
document.getElementByName("surname").maxLength = "40";
}

在我的htm文件中的这行代码中加载

<form action="blah blah blah" 
method="post" name="medicalform" onsubmit="return unrelated validation function();" 
onload="yeahbaby();">

最终结果是这个输入字段

Surname: <input type="text" name="surname">

最多限制为40个字符。

但是,它实际上并没有对输入字段设置限制,因为我可以输入超过40个字符(或者我尝试将其更改为)。

我知道我可以直接在htm文件中更改它但我需要使用javascript实际更改它。在过去的两个小时里,我一直试图解决这个问题。我错过了什么吗?

编辑:我已经尝试了getElementsbyName(添加了S)并且它仍然无效。

编辑2:document.getElementsByName(“surname”)[0] .setAttribute('maxLength','40');不起作用

编辑3:https://pastebin.com/7SNmmcSN指向我的HTML和javascript文件的链接。

2 个答案:

答案 0 :(得分:1)

尝试setAttribute

document.getElementsByName("surname")[0].setAttribute('maxLength', '40');

答案 1 :(得分:1)

您的代码中的问题是您将JavaScript作为函数但不调用该函数。

另请注意,getElementsByName不是getElementByName,它将返回HTML集合而不是单个元素。

因此,您必须指定索引[0]。

检查以下代码段。

&#13;
&#13;
function yeahbaby() {
document.getElementsByName("surname")[0].setAttribute("maxLength", "40");
}
yeahbaby();
&#13;
<form action="blah blah blah" 
method="post" name="medicalform" onsubmit="return unrelated validation function();" 
onload="yeahbaby();">


Surname: <input type="text" name="surname">
&#13;
&#13;
&#13;