我有一个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");
}
答案 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()
}
});
});
希望这有帮助。