在asp.net anypostback之前做一些javascript

Posted

技术标签:

【中文标题】在asp.net anypostback之前做一些javascript【英文标题】:Do something javascript before asp.net anypostback 【发布时间】:2012-03-28 03:05:29 【问题描述】:

我想在页面回发之前用 javascript 做一些事情。

如何在任何 asp.net 回发之前运行 javascript 函数?

$('form').submit(function () 
      alert('hello');
);

它不起作用... :(

【问题讨论】:

【参考方案1】:

在 2021 年,我完全摆脱了 jQuery。为此,我将 javascript 添加到我的页面:

document.forms[0].addEventListener('submit', e => 
if (conditionPreventingPostBack) 
    e.preventDefault();
    return false;
    
);

【讨论】:

【参考方案2】:

我在asp.net forums 中找到了方法,它是代码隐藏中的一些代码。

只需将其添加到您的 Page_Load 事件处理程序中,将 javaScript 字符串更改为您想要发生的情况。

string scriptKey = "OnSubmitScript";
string javaScript = "alert('RegisterOnSubmitStatement fired');";
this.ClientScript.RegisterOnSubmitStatement(this.GetType(), scriptKey, javaScript);

【讨论】:

+1 我知道这有多大了,但非常感谢!这对我帮助很大。【参考方案3】:

试试这个?

    <form name="someform">
    <input type="submit" value="" />
</form>
<script type="text/javascript">
document.someform.onsubmit = function  ( e ) 
    e = e|| window.event;
    if ( !confirm ( "sure?") )
        e.returnValue ? ( e.returnValue = false ):  e.preventDefault();
    

// then jquery version
$("form").bind("submit", function  ( e ) 
    if ( !confirm ( "sure?" ) )
        e.preventDefault();
    
)
</script>

【讨论】:

【参考方案4】:

尝试:

$('form').submit(function () 
    return confirm('you sure?');
);

除非您返回true,否则不会提交表单,在此之前您可以做任何您想做的事情。 当然,它不必是confirm() 电话。

【讨论】:

很奇怪,你用什么浏览器测试?【参考方案5】:

如果您想在 asp 的回发之前做一些客户端操作,请尝试使用 asp:buttonOnClientClick 属性,例如:

<asp:Button OnClick="submit" OnClientClick="myPrePostbackFunction()" Text="Submit" runat="server" ... />

【讨论】:

我知道,但我在页面上有很多 asp 元素,我想在任何回发之前执行此代码,而不是特殊按钮或元素

以上是关于在asp.net anypostback之前做一些javascript的主要内容,如果未能解决你的问题,请参考以下文章

ASP.Net MVC过滤器

NET Core 1.0

ASP.NET MVC Razor

Asp.Net Core 入门—— 环境变量 TagHelper

如何实现 asp.net core 安全优雅退出 ?

Asp.Net里关于Session过期跳转页面的一些小技巧