测试是否已单击按钮

时间:2012-08-28 09:51:11

标签: c# javascript .net

我有一个asp.net页面,它将记录中的值加载并写入页面上的控件。

指向另一个页面和保存按钮的链接。

如果用户点击“保存”,则可以保存更改,并且可以导航到任何位置。

如果他们没有点击“保存”并单击该链接,则任何更改都将丢失。

有没有办法在用户加载该页面时检查是否已单击了保存?

我正在思考OnClick Javascript函数的链接,例如-below,我不确定如何测试点击的保存按钮 - 有人能指出我正确的方向吗?

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

5 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

你必须在javascript状态中保留一个临时变量;

`

var state = 0;

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

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

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

答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

假设您正在使用这样的ASP.NET服务器按钮:

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

如果我是你,我会使用jQuery动态绑定按钮的click事件,如下所示:

$(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()
      }
   });
});

希望这有帮助。