启用或禁用javascript for asp.net webform按钮的e.c preventdefault

enable or disable e.preventDefault of javascript for ASP:NET webform button

本文关键字:按钮 webform preventdefault net asp javascript for 启用      更新时间:2023-09-26

我正在做ASP。NET 3.5 webform应用程序。我有提交按钮在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事件,即e.p preventdefault(),当用户选择不继续调用btnSubmit_Click

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

是否有任何方法我可以实现这作为暂停服务器调用??

JQuery代码

 $(document).ready(function () {
        createDialogElements();
        $("#ctl00_ContentArea_btnSubmit").click(function (e) {
           $("#WindowMessageDialog").jqxWindow('open');
           $("#messageDialog_btn_no").click(function () {
               alert("answerswer is no");
               e.preventDefault();
           });
           $("#messageDialog_btn_yes").click(function () {
               alert("answerswer 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("answerswer is no");
       return false;
    });
    $("#messageDialog_btn_yes").click(function () {
       alert("answerswer 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;
}

你可能需要修复一些东西,但这是一个想法,希望它能帮助。