【问题标题】:How to submit ASP.NET with JavaScript after custom validation自定义验证后如何使用 JavaScript 提交 ASP.NET
【发布时间】:2011-02-07 00:41:29
【问题描述】:

我需要触发一些自定义 JavaScript 验证,然后使用 JavaScript 提交我的 ASP.NET。

如何使用 JavaScript 提交表单?

【问题讨论】:

    标签: javascript asp.net form-submit


    【解决方案1】:

    要通过 JavaScript 进行回发,您可以调用以下服务器端为您创建 JavaScript 代码:

    string postBackJavascript = Page.GetPostBackEventReference(yourControl);
    

    这会将__doPostBack JavaScript 代码作为字符串返回,您需要将其放置在附加到某些内容的页面上,或者您可以自己直接调用__doPostBack

    __doPostBack(yourControlId,'');
    

    如果您是自己做的而不是使用Page.GetPostBackEventReference,那么请确保为触发验证的控件获取ClientID,例如:

    __doPostBack('<%= yourControl.ClientID %>','');
    

    编辑:重新阅读您的问题后,您并没有说您想触发基于 ASP.NET 控件的回发,您甚至可能没有使用任何 ASP.NET 控件,所以在这种情况下,如果你只想做一个普通的回发,你可以这样做:

    document.forms[0].submit();
    

    【讨论】:

    • 好吧,既然你问了......我正在尝试使用 ASP.Net 按钮提交。现在我无法获得不提交的按钮。我有 OnClientClick="validate(); return false;"但似乎不起作用。有什么想法吗??
    • @bill 应该可以工作...尝试删除validate() 看看是否只有return false; 有效。我的预感是你在validate() 中做某事会导致这种行为,因为它看起来是正确的。也许开始另一个问题并包括您的validate() 代码。
    • 当事件堆叠时,您可能无法取消按钮行为。因此,最初存在的 do postback 在您的 javascript 之前被触发。因此,您需要先清除原始事件,然后再将您的事件置于首位。否则按钮将始终提交。
    • Page.GetPostBackEventReference 现已过时。替换为 ClientScript.GetPostBackEventReference docs.microsoft.com/en-us/dotnet/api/…
    【解决方案2】:

    如果要回帖,可以使用 ASP.NET 放入 &lt;form&gt;__doPostBack()。看看这个link。如果您想提交另一个表单,只需在表单元素上调用.submit()

    【讨论】:

      【解决方案3】:

      应该这么简单

      document.forms[0].submit(); 
      

      前提是你的页面只有一个表单,否则你需要使用表单名而不是索引0。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-02-13
        • 1970-01-01
        • 1970-01-01
        • 2015-12-01
        相关资源
        最近更新 更多