更改表单属性后,ASP.Net Postback Broke

时间:2015-06-29 20:44:58

标签: c# asp.net

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

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

mypage.aspx.cs Page_Load我正在做的事情:

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

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

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

1 个答案:

答案 0 :(得分:1)

尝试添加常规按钮,然后从中调用您的gif功能,而不是添加submit按钮:

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

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

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