jquery移动保存按钮单击事件未触发

时间:2012-12-04 13:55:21

标签: jquery-mobile

我正在研究jQuery移动控件。我在主页面中有一个jqgrid,点击选定的行ID我将重定向到另一个带有id的页面。在那个页面中,我有一个与json绑定的下拉列表。绑定后我想点击一个按钮将数据保存到数据库。

问题是按钮点击事件没有触发,但是,当我自己运行特定的aspx时,按钮点击事件会触发。

 <a href="#" data-role="button" data-inline="true" id="btnsave"  data-transition="fade" 
      data-theme="b" data-icon="check" data-iconpos="right" runat="server" 
      onserverclick="btnsave_click" >Save</a>

1 个答案:

答案 0 :(得分:0)

尝试将data-ajax="false"添加到您的链接中。

例如

<a href="#" data-role="button" data-ajax="false" data-inline="true" id="btnsave"
         data-transition="fade" data-theme="b"  data-icon="check" data-iconpos="right" 
         runat="server" onserverclick="btnsave_click" >Save</a>

现在通过default解释,当您链接到jQuery Mobile中的页面时,JQM通过ajax拉入该页面并将其附加到当前页面的DOM。当JQM通过ajax拉入页面时,它只会引入data-role="page"并且加载可能位于<head>或页面上其他位置的任何资源。

从您的问题和标记中听起来您使用的是asp.net,而不再看到您的标记/代码我很确定您的问题是您没有链接页面的必要代码你的母版页。

通常要解决此问题,您可以将唯一内容放在链接页面的data=role="page" div中,或者在调用页面时确保页面已完全加载,即没有ajax。在你的情况下,因为看起来你试图调用服务器方法,创建回发的代码可能在你的第二页的div之外,在这种情况下你需要加载没有ajax的页面,你可以做到的最简单的方法是将data-ajax="false"添加到您的链接。