<script lnaguage=javascript defer=true > /** * This function is to check if a form (or a container of implements) 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; } }
<script lnaguage=javascript defer=true >
/**
* This function is to check if a form (or a container of implements) 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;
}function saveFun()
{
document.frm.operation.value="Save";
document.frm.submit();
document.frm.operation.value="";
}
</script><body onbeforeunload="if( (document.frm.operation.value!='Save') && isFormChanged(document.frm) ) return '请注意:修改的信息尚未保存.';">
<form name=frm>
<input type=hidden name=operation>
<input type=button value=save onclick="saveFun();"> <input name=aaa> </form>
<a href="about:blank">a</a>
</body>
<script lnaguage=javascript defer=true >-->>><script lnaguage=javascript >
在form的每个元素内设置一个onchange事件,onchange事件将changeflag变为true,
当离开页面时判断changeflag是否为true,是的话提示保存.