Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/258.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
启用或禁用ASP:NET webform按钮的javascript的e.preventDefault_Javascript_C#_Jquery_Asp.net 3.5_Preventdefault - Fatal编程技术网

启用或禁用ASP:NET webform按钮的javascript的e.preventDefault

启用或禁用ASP:NET webform按钮的javascript的e.preventDefault,javascript,c#,jquery,asp.net-3.5,preventdefault,Javascript,C#,Jquery,Asp.net 3.5,Preventdefault,我正在开发ASP.NET3.5WebForm应用程序。我在网络表单中有提交按钮 <cc1:FlatButton ID="btnSubmit" runat="server" class="positive" Text="Submit Assessment" OnClick="btnSubmit_Click" RemoveDiv="True" /> 现在我有额外的要求,提供messagebox,即当用户单击上面的提交按钮时出现的警报,并根据用户选项选择是否提交表单 我的问题是,当

我正在开发ASP.NET3.5WebForm应用程序。我在网络表单中有提交按钮

   <cc1:FlatButton ID="btnSubmit" runat="server" class="positive" Text="Submit Assessment" OnClick="btnSubmit_Click" RemoveDiv="True" />
现在我有额外的要求,提供messagebox,即当用户单击上面的提交按钮时出现的警报,并根据用户选项选择是否提交表单

我的问题是,当用户选择“否”时,如何防止调用btnSubmit_Click事件背后的代码,即preventDefault(),否则继续调用btnSubmit_Click

下面的代码并没有停止调用服务器代码,因为我在流程流的后期调用了e.preventDefault()

对于暂停服务器调用,我有什么方法可以做到这一点吗

JQuery代码
您可以对asp.net中的服务器控件使用
OnClientClick
属性

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

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

有一些解决办法。我认为最简单(但不是更好)的方法是创建一个变量来控制表单是否可以提交。当您单击submit时,它将调用打开对话框的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" />

您可能需要修复某些问题,但这正是您的想法,希望它能有所帮助。

如果您想阻止对serverSure的调用,请尝试使用return false!但是,当我想要的时候,我该如何实现呢?这是一个非常天真和可爱的问题:使用jQueryAjax处理数据,然后在成功回调时显示消息。
 $(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");
           });
        });
 <cc1:FlatButton ID="btnSubmit" runat="server" class="positive" Text="Submit Assessment" OnClick="btnSubmit_Click" OnClientClick="if (validForSubmit) return true; else  return validateForm();" RemoveDiv="True" />
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;
}