ASP.Net Postback在更改表单属性后崩溃

本文关键字:表单 属性 崩溃 Net Postback ASP | 更新日期: 2023-09-27 18:00:33

我有一个ASP.Net表单,在呈现时看起来如下(为了简洁起见,删除了许多行标记):

<form onsubmit="document.body.style.cursor='wait';showLoader();" action="mypage.aspx">
<!-- form elements and controls -->
<input type="submit" />
</form>

mypage.aspx.csPage_Load中,我正在做:

if(Page.IsPostBack)
{
    Foo();
} else {    
    Bar();
}
Quux();

在不使用Chrome开发工具修改HTML页面的情况下,如果我提交表单,它将执行Bar()。但是,如果我删除了表单中的onsubmit属性或将其替换为自己的属性,ASP.Net会认为该页面正在执行postback并执行Foo()

我觉得这种行为很奇怪,因为onsubmit中的内联JS代码不会更改任何与表单提交相关的内容。它的功能只是在表单重新加载时添加一个加载GIF。这里会不会有我遗漏的东西?

ASP.Net Postback在更改表单属性后崩溃

不要添加submit按钮,而是尝试添加一个常规按钮,并从中调用gif功能:

<input type="button" onclick="document.body.style.cursor='wait';showLoader();" value="Click Me" />

这不会发布任何内容,这正是您想要的。<input type='submit'>将始终导致回发,除非您使用JavaScript取消它。

JSFiddle:http://jsfiddle.net/0gd8t7ew/