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");
 } 
4

5 回答 5

0

添加一个 bool 变量,默认为 false,如果单击了按钮,则设置为 true。如果用户离开页面,则检查该值。

于 2012-08-28T09:54:36.260 回答
0

您可以使用hidden field. 当用户点击保存按钮然后设置hidden field值。

于 2012-08-28T09:55:10.500 回答
0

您必须在 javascript 中保留一个临时变量,例如 state;

`

var state = 0;

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

` 在这种情况下,您必须在 state=1 时提交值或导航到其他页面,否则您不应该这样做。在单击链接(如果它通过函数导航)或页面的 onBeforeUnload 事件时要检查此标志。

如果您正在寻找其他东西,请纠正我。

于 2012-08-28T09:56:39.030 回答
0

单击按钮时,您可以将一些值附加到变量。然后当用户尝试导航时,检查该变量是否具有该值。如果是,它已被点击,否则不是:

button = document.getElementById("button");
button.onclick = function() { clicked = true; }
document.getElementById("link").onclick = function() { if (!clicked) { alert("Sure?"); }
于 2012-08-28T09:57:39.530 回答
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()
      }
   });
});

希望这可以帮助。

于 2012-08-28T09:58:46.897 回答