这就是为什么我一直讨厌Javascript,因为它总是做这样奇怪的事情...我在脚本中添加了这个精确的代码而没有一个问题,然后我将EXACT代码粘贴到另一个中,它根本不起作用。太令人沮丧了。这是代码有什么问题吗?此外,如果您可以通过elementID而不是表单名称来使其工作,那将非常感谢
<script language="javascript" type="javascript">
<!--
function randomPassword(length)
{
chars = "abcdefghijklmnopqrstuvwxyz!@#$%^&*()-+<>ABCDEFGHIJKLMNOP1234567890";
pass = "";
for(x=0;x<length;x++)
{
i = Math.floor(Math.random() * 67);
pass += chars.charAt(i);
}
return pass;
}
function formSubmit()
{
myform.row_password.value = randomPassword(myform.length.value);
return false;
}
// -->
</script>
<form name="myform" method="post" action="">
<table width="100%" border="0">
<tr>
<td width="120">Username:</td>
<td><input name="update_username" type="text" value="" size="40"></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="row_password" type="text" size="40"> <input type="button" class="button" value="Generate" onClick="javascript:formSubmit();" tabindex="2"></td>
</tr>
</table>
</form>
答案 0 :(得分:1)
已移除javascript:
已添加document.myform
并已更改... randomPassword(myform.update_username.value.length);
现在似乎正常工作...... JS Bin Demo
function randomPassword(length)
{
chars = "abcdefghijklmnopqrstuvwxyz!@#$%^&*()-+<>ABCDEFGHIJKLMNOP1234567890";
pass = "";
for(x=0;x<length;x++)
{
i = Math.floor(Math.random() * 67);
pass += chars.charAt(i);
}
return pass;
}
function formSubmit()
{
document.myform.row_password.value = randomPassword(myform.update_username.value.length);
return false;
}
答案 1 :(得分:0)
formSubmit
中的代码期望表单的名称为passform
。相应地更改表单,或更改代码以使用myform
而不是passform
。
或者,您可以更改代码以将表单作为参数:
function formSubmit(frm) {
frm.row_password.value = randomPassword(myform.length.value);
return false;
}
然后使用:
调用它onclick="formSubmit(this.form);"
您在表格中缺少名为length
的字段:
<input type="hidden" name="length" value="10">
演示:http://jsfiddle.net/Guffa/DDn6W/
附注:将代码放入事件属性时,请勿使用javascript:
。这仅在您将代码放入href
属性时使用。请勿在{{1}}标记内使用<!--
和-->
。这是一个古老的结构,可以防止代码在不知道script
标记的浏览器中显示在页面中。那些不再存在。
答案 2 :(得分:0)
passform.row_password.value
正在寻找名为“passform”的表单,但在此代码中您有<form name="myform">
。
在任何情况下,这都是一种过时且可能有害的访问元素的方式 - 但是,从您仍然使用HTML注释来隐藏代码到“旧”浏览器的事实来判断,我怀疑你是否已经选择了来自这个里程碑的JavaScript书:p
您的randomPassword
功能正常,但在几个方面更改formSubmit
错误。
document.getElementById('someID')
来获取它们。formSubmit
。您是否有onClick
或onSubmit
事件处理程序?