写了个检查页面数据是否修改来弹出提示的东东
本来可能可以在submit上直接加点东西的,但因为用了jquery.validate,不能在form.sumbit上挂事件了.
而且似乎这个东西也不一定有多少价值, 只是项目需要用到.
不帖代码了, 核心检测是否表单修改的代码是网上copy的:
Utils.isFormChanged = function(formId)
{
if (Utils.FormChanged)
return true;
var formObj = document.getElementById(formId);
var inputObjs=formObj.getElementsByTagName("INPUT"); //For Input Obj
for(var i=0;i<inputObjs.length;i++)
{
if((inputObjs[i].type.toUpperCase()=="TEXT" || inputObjs[i].type.toUpperCase()=="FILE")
&& 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 selectObjs = formObj.getElementsByTagName("SELECT");//For Select Obj
for(var i=0; i<selectObjs.length; i++)
{
for(var j=1; j<selectObjs[i].length; j++)
{
if (selectObjs[i].options[j].defaultSelected != selectObjs[i].options[j].selected)
{return true;}
}
}
var textareaObjs=formObj.getElementsByTagName("TEXTAREA"); //For Textarea Obj
for(var i=0; i<textareaObjs.length; i++)
{
if(textareaObjs[i].defaultValue!=textareaObjs[i].value)
{return true;}
}
return false;
}
{
if (Utils.FormChanged)
return true;
var formObj = document.getElementById(formId);
var inputObjs=formObj.getElementsByTagName("INPUT"); //For Input Obj
for(var i=0;i<inputObjs.length;i++)
{
if((inputObjs[i].type.toUpperCase()=="TEXT" || inputObjs[i].type.toUpperCase()=="FILE")
&& 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 selectObjs = formObj.getElementsByTagName("SELECT");//For Select Obj
for(var i=0; i<selectObjs.length; i++)
{
for(var j=1; j<selectObjs[i].length; j++)
{
if (selectObjs[i].options[j].defaultSelected != selectObjs[i].options[j].selected)
{return true;}
}
}
var textareaObjs=formObj.getElementsByTagName("TEXTAREA"); //For Textarea Obj
for(var i=0; i<textareaObjs.length; i++)
{
if(textareaObjs[i].defaultValue!=textareaObjs[i].value)
{return true;}
}
return false;
}
//要小心地处理窗口关闭的事件, 另外form提交之前也会触发这个事件, 要用全局变量管住一下.
Utils.initCloseCheck = function(formId, msg)
{
Utils.closeMessage = msg;
Utils.FormId = formId;
window.onbeforeunload = function(){
if (!Utils.ForceClose && Utils.isFormChanged(Utils.FormId))
{
return Utils.closeMessage;
}
}
}
Utils.initCloseCheck = function(formId, msg)
{
Utils.closeMessage = msg;
Utils.FormId = formId;
window.onbeforeunload = function(){
if (!Utils.ForceClose && Utils.isFormChanged(Utils.FormId))
{
return Utils.closeMessage;
}
}
}