js 判断 form内容是否有变化

在网上找到如下代码functionisFormChanged(fm,exceptObjName){if(confirm("是否提交?!")){if(fm==null)fm... 在网上找到 如下代码

function isFormChanged(fm,exceptObjName)
{
if(confirm("是否提交?!"))
{
if(fm==null) fm=document.forms[0];
if(exceptObjName==null) exceptObjName=="";
var selectObjs=fm.getElementsByTagName("SELECT");//For Select Obj
for(var i=0;i<selectObjs.length;i++)
{
if((selectObjs[i].name=="")||(eval("/(^|,)"+selectObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
for(var j=1;j<selectObjs[i].length;j++)
{
if(selectObjs[i].options[j].defaultSelected!=selectObjs[i].options[j].selected)
return true;
}
}

var inputObjs=fm.getElementsByTagName("INPUT");//For Input Obj
for(var i=0;i<inputObjs.length;i++)
{
if((inputObjs[i].name=="")||(eval("/(^|,)"+inputObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
if((inputObjs[i].type.toUpperCase()=="TEXT")&&(inputObjs[i].defaultValue!=inputObjs[i].value))
return true;

else if(((inputObjs[i].type.toUpperCase()=="RADIO")||(inputObjs[i].type.toUpperCase()=="CHECKBOX"))
&&(inputObjs[i].defaultChecked!=inputObjs[i].checked))
return true;

}

var textareaObjs=fm.getElementsByTagName("TEXTAREA");//For Textarea Obj
for(var i=0;i<textareaObjs.length;i++)
{
if((textareaObjs[i].name=="")||(eval("/(^|,)"+textareaObjs[i].name+"(,|$)/g").test(exceptObjName))) continue;
if(textareaObjs[i].defaultValue!=textareaObjs[i].value)
return true;

}
return false;
}
}

我原来的form name=fm
现在想实现,点击提交按钮 onclick事件,就会检测表单内容是否有改变,如果表单内容有变化 则出现错误alert提示,内容被更改。 如果内容没更改 则可以顺利提交。
我的form里 有input,select 还有textarea。
如果我想更改form中的内容,更改后,点更新就可完成更改,然后再点提交。
但如果更改了 没有点更新按钮 直接提交,则提示内容被更改,没有保存。
期待各位高手帮忙。
尽量把代码完善。谢谢。
展开
 我来答
帐号已注销
2010-08-09 · TA获得超过1232个赞
知道大有可为答主
回答量:1245
采纳率:0%
帮助的人:1429万
展开全部
<input type="button" onclick="if(isFormChanged(null,null)==true){this.disabled=true;this.value='请先保存 再提交'} else {location.href=地址'}" value="提交" />
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式