JavaScript不能在一个网站上工作,但在另一个网站上很好
JavaScript not working on one site but fine on the other
这就是为什么我一直讨厌Javascript,因为它总是做这样奇怪的事情......我在脚本中添加了这个 EXACT 代码,没有一个问题,然后我将 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>
删除javascript:
添加document.myform
并更改... randomPassword(myform.update_username.value.length);
现在似乎有效... JS斌演示
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;
}
passform.row_password.value
正在寻找一个名为"passform"的表单,但在此代码中,您<form name="myform">
.
无论如何,这是一种过时且可能有害的元素访问方式 - 不过,从您仍在使用 HTML 注释来隐藏"旧"浏览器的代码这一事实来看,我怀疑您是否从这个千年:p中拿起了一本 JavaScript 书
您的randomPassword
功能很好,但更改formSubmit
在几个方面是错误的。
- 除了访问错误的表单之外,它还尝试访问一个名为"长度"的字段,该字段在此表单中不存在。
- 你应该为你想要在 JavaScript 中访问的元素分配 ID,并使用
document.getElementById('someID')
来获取它们。 - 你实际上并没有在任何地方打电话给
formSubmit
。您是否有onClick
或onSubmit
事件处理程序?
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
属性时,才会使用此方法。请勿在 script
标记中使用<!--
和-->
。这是一个古老的结构,用于防止代码显示在不知道script
标签用途的浏览器中的页面中。这些已经不存在了。
- "此网站似乎使用滚动链接定位效果.这可能不能很好地与异步平移一起工作;
- 代理一个网站能够在iframe中进行所见即所得编辑-它是如何工作的
- 使用HTML和任何服务器端语言(PHP,.net,ruby)制作的网站是否可以在每个具有浏览器的设备上工作
- Toggle已停止在我的网站上工作
- 谷歌脚本-从网站论坛解析HTML-并将数据写入工作表
- 我可以'我似乎没有得到我的网站'移动导航开始工作
- JavaScript网站与工作实例
- 如何在node.js的帮助下使用网站在localhost上工作
- 如何使Asp.net网站同时在IE 11(非可比模式)和IE 8中工作
- 缓存以使我的网站离线是't工作
- jsFiddle工作,网站JS不工作
- 代码在 jsfiddle 中工作,但在我的网站上不起作用
- 我的jQuery在JSFiddle中工作,但不能在我的网站上工作!我做错了什么
- CSS 在基于 URL 上工作,但不在网站的其他页面中使用.代码点火器
- JavaScript不能在一个网站上工作,但在另一个网站上很好
- 如何让Jsfiddles在网站上工作
- 如何让旋转木马为drupal网站工作
- 带宽检查与视频网站(工作在手机和平板电脑)
- 如何DownForEveryoneOrJustMe.com和其他类似的网站工作与跨域脚本限制
- 网站工作,但不是在iphone上.XMLHttpRequest()错误