onkeypress不捕获中文字的,用E文可以
你还是改变写思路吧

解决方案 »

  1.   


    <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>
      

  2.   

    以上代码有点问题:
    <script lnaguage=javascript  defer=true >-->>><script lnaguage=javascript >
      

  3.   

    这样成不成?
    在form的每个元素内设置一个onchange事件,onchange事件将changeflag变为true,
    当离开页面时判断changeflag是否为true,是的话提示保存.