gpt4 book ai didi

javascript - 为 ASP :NET webform button 启用或禁用 javascript 的 e.preventDefault

转载 作者:行者123 更新时间:2023-11-30 16:31:20 25 4
gpt4 key购买 nike

我正在开发 ASP.NET 3.5 webform 应用程序。我在网络表单中有提交按钮

   <cc1:FlatButton ID="btnSubmit" runat="server" class="positive" Text="Submit Assessment" OnClick="btnSubmit_Click" RemoveDiv="True" />

调用 OnClick="btnSubmit_Click 代码隐藏。

protected void btnSubmit_Click(object sender, EventArgs e)
{
....

现在我有额外的要求,提供消息框,即当用户点击上面的提交按钮时出现的警报,并根据用户选项选择,表单提交或不提交

我的问题是如何根据用户选择阻止调用代码隐藏的 btnSubmit_Click 事件,即当用户选择不继续调用 btnSubmit_Click 时的 e.preventDefault()

现在下面的代码不会停止调用服务器代码,因为我在流程的后期调用 e.preventDefault()。

有什么方法可以实现暂停服务器调用???

JQuery 代码

 $(document).ready(function () {

createDialogElements();

$("#ctl00_ContentArea_btnSubmit").click(function (e) {

$("#WindowMessageDialog").jqxWindow('open');

$("#messageDialog_btn_no").click(function () {

alert("answer is no");

e.preventDefault();
});

$("#messageDialog_btn_yes").click(function () {

alert("answer is yes");
});
});

最佳答案

您可以在 asp.net 中为服务器控件使用 OnClientClick 属性。

问题是,当您点击提交按钮时,OnClientClick 中定义的函数将被触发,其结果必须为true 或false,才能继续或取消提交。在您的示例中,您正在打开一个对话框并等待用户点击,但 javascript 不会停止等待用户的操作。

如果是 javascript 中的简单验证,比如必填字段,或者任何预期值,都会非常简单。

有一些解决方案。我能想到的最简单(但不是更好)的方法是创建一个变量来控制您的表单是否可以提交。当您点击提交时,它会调用一个打开对话框的 javascript 函数,并返回 false,因此表单不会被提交。

当对话框关闭时,如果表单有效,它将提交表单。

试试这个,在点击时设置一个客户端函数:

 <cc1:FlatButton ID="btnSubmit" runat="server" class="positive" Text="Submit Assessment" OnClick="btnSubmit_Click" OnClientClick="if (validForSubmit) return true; else  return validateForm();" RemoveDiv="True" />

并用这个 Javascript 函数替换你的 jQuery 代码:

var validForSubmit = false;

function validateForm() {
$("#WindowMessageDialog").jqxWindow('open');

$("#messageDialog_btn_no").click(function () {
alert("answer is no");
return false;
});

$("#messageDialog_btn_yes").click(function () {
alert("answer is yes");
// set form as valid for submit
validForSubmit = true;
// fire the click, because the form is now valid
$("#ctl00_ContentArea_btnSubmit").click();
return true;
});

return false;
}

您可能需要修复一些东西,但这是我的想法,希望对您有所帮助。

关于javascript - 为 ASP :NET webform button 启用或禁用 javascript 的 e.preventDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33279872/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com