<body onchange="alert('已经改变')">

解决方案 »

  1.   

    请参考asp.net有关ViesState的实现
      

  2.   

    /**
    * 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;
    }-------
    注:
    第一个参数为document时,为检查整个页面
    第一个参数也可以是其它对象容器,如tr/table
    另:没有对select-multiple作处理
      

  3.   

    lantersen(蓝水仁--希望能自由去宝岛看'日月潭'!~) 的思路是可行的。
      

  4.   

    最好使用HTTPXML 也就是ajax方式进行动态添加直接入库 只要在界面上进行任何操作马上写入数据库不就行了 就是比较麻烦