Javascript代码会冻结浏览器,并且代码只能在firefox中工作
javascript code freezes the browser and the code only works in firefox
我有一个表单,所有的文本框都应该在提交之前填写。我的表单是这样的
<form name="form" method="post" action="url" onsubmit="return checkEmpty(this)" >
<div class="field">
<label>field1</label><input type="text" name="f1" />
</div>
<div class="field">
<label>field2</label><input type="text" name="f2" />
</div>
..
....
......
input type="submit" name="Submit" value="submit" />
</form>
我在这里做的是,当一个表单被提交时,我检查是否有任何文本框是空的,如果有,我创建一个dom
元素h3
,并将其附加到相应字段的div
,如果文本框不是空的,我检查是否有任何文本框附加到相应的字段,如果我找到一个,我删除它。这是我的javascript代码
function checkEmpty(form) {
var textboxes=form.elements;
for(var i=0;i<textboxes.length;i++)
{
if((textboxes[i].type=="text" || textboxes[i].type=="password") && textboxes[i].textLength==0) //text box is empty
{
var msg=document.createElement('h3');
msg.innerHTML="u cant leave this field blank";
textboxes[i].parentNode.appendChild(msg);
return false;
}
else //text box is not empty
{
var rem_msg=textboxes[i].parentNode.getElementsByTagName('h3');
for(var j=0;j<rem_msg.length;j++)
textboxes[i].parentNode.removeChild(rem_msg[j]);
}
}
}
现在当我提交表单时浏览器冻结了。*也我的代码不工作在谷歌浏览器,但只有firefox*直到我没有删除元素的代码工作良好,但删除元素是必要的,因为说一个用户没有输入任何值在文本框1第一次尝试,所以一个h3
元素将被添加,但现在他在第一个文本框中输入一些文本,但留下第二个文本框空,所以第一个文本框的h3
元素应该消失。
是因为代码下面的答案是不是再冻结浏览器了呢我仍然只能添加
h3
元素添加到dom中,但不能删除他们。代码也可以在firefox中工作
问题是您在两个不同的循环中使用了变量i
。当内部循环结束时,它总是将i
设置为rem_msg.length
,这将使外部循环永远不会达到其退出条件,因此您最终会得到一个无限循环。
要解决您的问题,您只需将第二个i
重命名为例如j
,您就可以开始了。
我想可能是畸形的for
:
for(var i=0;i<rem_msg.length;;i++)
你有一个额外的;
,所以我认为i++
没有运行。
相关文章:
- 使用Python访问Firefox Inspector中的代码
- 在Firefox restartless插件中,当一个新窗口打开时,我如何运行代码(监听窗口打开)
- 无法使用firefox在浏览器中运行此代码
- javascript代码,用于删除firefox中的空白,但在IE和chrome中无法正常工作
- Javascript代码在chrome和Firefox上给出错误
- jQuery代码在Firefox中工作,但在IE中失败
- 选择“行在 Chrome 和 Firefox 中不起作用(生成的代码)”
- 如何检查Firefox是否使用asm.js代码
- 我的简单Javascript代码可以在Safari上运行,但不能在Chrome、Firefox或Opera上运行
- 出现错误:TypeError:window.event在我的javascript代码的firefox中未定义
- 代码在firefox中运行良好,但在chrome中不起作用.为什么?
- 如何使用js ctypes Firefox扩展来调用本机C代码
- javascript代码适用于IE和Chrome,但不适用于Firefox
- 对chrome和Firefox使用相同的代码,但得到不同的结果
- 防止在 Firefox 插件、iframe 中提升权限的 js 代码
- 代码在 Dreamweaver cs6 中工作,但在 chrome/firefox 中不起作用
- 如何确定实际背景在 JavaScript 中文本的颜色和颜色(Firefox 扩展代码)
- PHP代码适用于Chrome,但不适用于Firefox或IE
- 为什么这段代码在FireFox和IE中不起作用,但在Chrome中却有效
- 我的代码在Firefox中工作,但不能在Internet Explorer中工作