在保存之前,单击不同选项卡时发出警报

时间:2011-05-12 08:55:54

标签: javascript

我的页面中有很多标签,我想提供一个警告框,上面写着“你想保存更改吗?”如果用户更改页面中的任何内容,而不点击页面中提供的保存按钮,则他点击差异标签。

1 个答案:

答案 0 :(得分:1)

我猜JavaScript可以解决这个问题。为此,技术上有不同的方式。其中之一是有一个函数可以验证字段/页面是否有任何变化。此函数将首先由其他选项卡函数调用。

加载页面后,将字段的所有值存储在一个变量或隐藏字段中作为连接。但是你可以通过变量将它分开,然后再将它连接起来。

ex. var gOldValue = 'value1value2value3....'; //The value1.... is generated via JSP

创建一个函数,将gOldValue值与gOldValue中包含的所有字段的当前值进行比较,如果页面发生更改,则会将其作为基础。

function isPageChanged(form){
    var currentValue = "";
    for(var i = 0; i < form.length; i++){
         //Assuming all elements in the form have the value that stored in `gOldValue`
         //upon loading. Now check its current value if will be same.
         currentValue += form.elements(i).value;
    }

    //Return a value that will indicate that pages have been changed
    if(gOldValue != currentValue){
         return true;             
    }         
    return false;

} 

在执行其主函数之前,您的其他选项卡可能首先调用isPageChanged()函数。

<input type="button" onClick="showNextPage()" value="Next" />....

 function showNextPage(){
     if(isPageChanged()){
         var isConfirm = confirm("Do you want to save changes");
         if(isConfirm){
             //Save the changes
         }
     }
     //Else do some stuff...

 }