Jquery Mobile:取消Postback导致页面加载错误
所以,我一直试图让这个页面工作几天,当我点击发送按钮它会工作,但如果你试图点击输入它只会回发到同一页面。昨天我想我终于搞定了,所以它可以在Chrome上运行(它在firefox上工作得很好,但打破了Chrome/Safari,它是iPhone的应用程序)。但是,即使我终于知道它会改变页面,但它现在显示一个错误。我将原因缩小到正在被发送的回复,然后我想要发送的回发被取消。我认为取消的回传是空白的,因为我遇到的问题是页面会做空白回传。Jquery Mobile:取消Postback导致页面加载错误
我通过添加
javascript:if (event.keyCode == 13) __doPostBack('" & btnSearch.UniqueID & "','')
到onkeypress事件为txtSearch '固定' 的问题。用于asp:LinkButton和asp:TextBox的结尾html(包含在asp:Panel中,位于表单内的主页的内容可能相关,也可能不相关)可能是
<input name="ctl00$contentMain$txtSearch" id="contentMain_txtSearch" type="text" data-type="search" onkeypress="javascript:if (event.keyCode == 13) __doPostBack('ctl00$contentMain$btnSearchByIDName','')" class="...">
<a id="contentMain_btnSearch" class="..." data-role="button" onclientclick="return false;" href="javascript:__doPostBack('ctl00$contentMain$btnSearch','')" data-theme="c"><span class="..."><span class="...">Search</span></span></a>
后面的代码中有一个按钮点击事件。
这是帖子的标题,回复和其他内容都是空的。
Accept:text/html, */*; q=0.01
Content-Type:application/x-www-form-urlencoded
Origin:Local.Website
Referer:Local.Website/EmployeePhoneList/PhoneList.aspx
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1
X-Requested-With:XMLHttpRequest
任何人有任何想法如何弄清楚为什么它做两个回发?或者我怎么能确定是什么原因造成的?谢谢你的帮助。
更新:仔细查看响应,btnSearch是错误和正确回发的来源。此外,没有工作,AutoPostBack =“false”,CauseValidation =“false”,ViewStateMode =“已禁用”和UseSubmitBehavior =“false”。
虽然我们无意解决了这个问题的另一页上固定一个看似无关的问题。甚至在ajaxEnabled = false的情况下,您有时需要以masterpage的形式放置data-ajax =“false”,以使asp.net代码能够与JQuery移动版一起正常工作。无论是那个还是rc1都解决了这个问题,我不确定,现在我不再在意了。
您是否尝试禁用jQuery Mobile的Ajax导航?以下是我在MVC项目中做到了,应该在WebForms的是类似的:
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery-1.6.2.min.js")"></script>
<script type="text/javascript">
$(document).bind("mobileinit", function() {
$.mobile.ajaxEnabled = false;
});
</script>
<script type="text/javascript" src="@Url.Content("~/Scripts/jquery.mobile-1.0b2.min.js")"></script>
是的,我们在webapp(两个站点名称,intranet和extranet)的主页上都以这种方式禁用了ajax。虽然昨天我不得不改变它到新的方式,因为我意识到我们已经在Alpha中设置了它,所以它是$ .mobile.AjaxFormsEnabled = False;尽管如此,这并没有解决问题。 – Twomz