2

我不想在 Form 中更改我的文本框名称,因为它使用了程序中的其他位置。

问题是 JavaScript 不喜欢我的文本框名称(m4j-117)。它正在考虑“-”作为减号。

如何在不更改文本框名称的情况下使其工作。

谢谢

任何帮助将不胜感激。

这是我的示例代码。

 <form name="randform">
 <body>
 <script language="javascript" type="text/javascript">



 function randomString() {
   var chars = "0123456789";
   var string_length = 8;
   var randomstring = '';
   for (var i=0; i<string_length; i++) {
    var rnum = Math.floor(Math.random() * chars.length);
    randomstring += chars.substring(rnum,rnum+1);
    }
    document.randform.m4j-117.value = "P"+randomstring;
}
</script>


<input type="button" value="Create Random String" onClick="randomString();">&nbsp;
<input type="text" name="name" value="value" onblur="randomString();;"/>
<input type="text" name="m4j-117" value="">
</body>
</form>
4

2 回答 2

11

怎么样:

document.getElementsByName("m4j-117")[0].value = "P"+randomstring;

从具体形式:

document.randform.elements["m4j-117"] = "P"+randomstring;
于 2013-05-23T20:30:01.027 回答
6
document.randform['m4j-117'].value

不过,依赖名称有点过时了。我建议给它一个 ID 并document.getElementById直接使用,或者querySelector为表单使用适当的 ID

于 2013-05-23T20:30:50.983 回答