2012-08-28 195 views
0

我有一個asp.net頁面,它可以將記錄中的值加載到頁面上的控件中並將其寫入頁面。測試按鈕是否已被點擊

有一個鏈接到另一個頁面和保存按鈕。

如果用戶單擊保存,則罰款,更改將被保存,並且可以導航到任何地方。

如果他們不點擊保存並點擊鏈接,任何更改都將丟失。

有沒有一種方法來檢查用戶是否已加載該頁面時是否點擊了保存?

我正在考慮一個OnClick Javascript函數的鏈接如下 - 我不知道如何測試被點擊的保存按鈕 - 任何人都可以指向正確的方向嗎?

function handleHyperLinkClick(hyperlink) 
{ 
    confirm("You have not clicked save, any changes will be lost - click cancel then save your changes or ok to continue"); 
} 

回答

0

添加一個bool變量,默認爲false,如果點擊了該按鈕,則設置爲true。然後檢查用戶是否離開該頁面的值。

0

您可以使用hidden field。當用戶點擊保存按鈕,然後設置hidden field值。

+0

頁面大小會隨着字節數的增加而增加。每一個位都很重要,所以它在JavaScript中使用臨時變量很方便,比這更簡單。 – VIRA

0

你必須在javascript中保留一個臨時變量,如狀態;

`

var state = 0; 

//your function calls here 
function yourFunction() 
{ 
//// your coding 
state =1; 
//// your coding 
} 

` 在這種情況下,你必須提交值或瀏覽其他頁面時,狀態= 1,否則你不應該。在點擊鏈接(如果它的導航通過函數)或頁面的onBeforeUnload事件時檢查此標誌。

如果你正在尋找其他的東西,請更正我的知識。

0

單擊按鈕時,可以將某些值附加到變量。然後當用戶嘗試導航時,檢查該變量是否具有該值。如果是這樣,它已被點擊,否則不:

button = document.getElementById("button"); 
button.onclick = function() { clicked = true; } 
document.getElementById("link").onclick = function() { if (!clicked) { alert("Sure?"); } 
0

假設你正在使用ASP.NET服務器按鈕這樣的:

<asp:Button runat="server" id="someButtonId" Click="someClickHandler" Text="Continue" /> 

如果我是你,我會用jQuery動態綁定點擊這樣的按鈕事件:

$(document).ready(function() { 
    $("input[type=button][id$=someButtonId]").on("click", function(e) { 
     if(!confirm("You have not clicked save, any changes will be lost - click cancel then save your changes or ok to continue")) 
     { 
      e.preventDefault() 
     } 
    }); 
}); 

希望這會有所幫助。