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中的内容,更改后,点更新就可完成更改,然后再点提交。
但如果更改了 没有点更新按钮 直接提交,则提示内容被更改,没有保存。
期待各位高手帮忙。
尽量把代码完善。谢谢。 展开
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中的内容,更改后,点更新就可完成更改,然后再点提交。
但如果更改了 没有点更新按钮 直接提交,则提示内容被更改,没有保存。
期待各位高手帮忙。
尽量把代码完善。谢谢。 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询