以下是一个判断form元素是有进行了修改的函数,不知能否满足楼主的需要。 /** * This function is to check if a form has been changed. * JK 2004-01-05 * formObj:the checked form * exceptObjName:the name of whitch need not be checked; * For example:isFormChangedFun(document.frm,"ACheckbox,BRadio,CSelect"); */ function isFormChanged(formObj,exceptObjName) { if(formObj==null) formObj=document.forms[0]; if(exceptObjName==null) exceptObjName==""; var selectObjs=formObj.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; } }
在离开页面时判断是否页面作了修改,若有修改就提醒用户没有保存
/**
* This function is to check if a form has been changed.
* JK 2004-01-05
* formObj:the checked form
* exceptObjName:the name of whitch need not be checked;
* For example:isFormChangedFun(document.frm,"ACheckbox,BRadio,CSelect");
*/
function isFormChanged(formObj,exceptObjName)
{
if(formObj==null) formObj=document.forms[0];
if(exceptObjName==null) exceptObjName=="";
var selectObjs=formObj.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=formObj.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=formObj.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;
}
-------------
晕!