当对可编辑GridView中的文本框进行更改时,我有一个jQuery函数设置隐藏字段值。表格上有两个按钮;一个用于保存更改,另一个用于使用新值执行不同的进程。如果先按下第二个按钮,我想要出现确认信息,告诉用户没有保存更改。单击“是”将保存更改并运行该按钮的过程。单击“否”不执行任何操作。我不能使用“return confirm('')”,因为即使没有检测到更改,它也会一直显示确认。确认应仅显示隐藏字段是否具有值(在本例中为“已更改”)。我已经尝试了各种解决方案,但是获得了关于不存在的函数或其他空对象的错误。
以下检测更改并将隐藏字段值设置为“已更改”:
$(function () {
$(".gv input.CAIFormat").bind('blur', function (e) {
$(this).val(CommaFormatted($(this).val()));
var change = $get('ctl00_BodyContentPlaceHolder_TabContainer1_tabSpaceDriver_hidSummaryTableChanged');
change.value = "changed";
});
});
如果隐藏字段具有值,则asp.net按钮应显示确认:
<asp:Button ID="btnSaveSDDepartmet" runat="server" Text="Update Departments" />
答案 0 :(得分:0)
使用jQuery将事件绑定到按钮,检查值,然后检查输入的值。
仅供参考 - 开始使用on
来绑定事件,自{jQuery 1.7}开始不推荐使用bind
(参见http://api.jquery.com/bind/)
$("btnSaveSDDepartmet").on('click', function (e) {
var change = $get('ctl00_BodyContentPlaceHolder_TabContainer1_tabSpaceDriver_hidSummaryTableChanged');
if (change.value == "changed") {
if (!window.confirm("Changes not saved -- continue?")){
e.preventDefault();
return false;
}
}
});
<强>文档强>
* jQuery.on
- http://api.jquery.com/on/
* window.confirm
- https://developer.mozilla.org/en-US/docs/DOM/window.confirm
答案 1 :(得分:-1)
以下工作:
<asp:Button ID="btnSaveSDDepartmet" runat="server" Text="Update Departments" CssClass="CAIButton" OnClick="btnSaveSDDepartmet_Click" OnClientClick="if (!ConfirmMsg()) { return false; }" />
function ConfirmMsg() {
var obj = $get('ctl00_BodyContentPlaceHolder_TabContainer1_tabSpaceDriver_hidSummaryTableChanged');
if (obj.value == "changed")
return confirm("Data has been changed, but not saved. Do you want to save and continue?");
else
return false;
}