回发后弹出JqueryMobile

时间:2013-07-08 06:43:00

标签: asp.net jquery-mobile popup

我有一个Jquerymobile弹出窗口(在asp.net网站上),其中有一个简单的textarea和提交按钮。 提交按钮事件后,我想做某些事情。 在textarea上验证,如果为空则显示带有错误消息的文字。 如果成功,则显示感谢信息以及关闭按钮。 所有这一切都必须在弹出窗口打开时(提交后)完成。

问题是,提交后刷新DOM并关闭弹出框。

<div class="feedback-text">
        <a href="#feedback" data-rel="popup">Feedback</a>
        </div>
        <div data-role="popup" id="feedback" data-overlay-theme="a" data-position-to="window">
            <a href="#" data-rel="back" data-role="button" data-theme="a" data-icon="delete" data-iconpos="notext" class="ui-btn-right">Close</a>
        <div class="feedback-field-wrapper">                          
             <asp:TextBox ID="txtFeedback" runat="server" Text="*feedback" cssclass="form-first-name" TextMode="MultiLine" Rows="3"></asp:TextBox>
        </div>
        <center>
        <div class="errormsg-feedback"><asp:literal ID="ltError" runat="server" Text="test" Visible="false"></asp:literal></div>        
            <asp:Button ID="btnFeedback" runat="server" Text="Submit" data-ajax="false" 
                data-icon="arrow-r" style="width:150px;" data-inline="true" /></center>                 
</div>

你们建议是否有办法在提交后保持弹出框打开。

感谢。

1 个答案:

答案 0 :(得分:0)

不幸的是,你通常无法释放,否则你会使用localStorage API。这就像存在于浏览器中的缓存系统。来自DiveIntoHTML5

  

那么什么是HTML5存储?简而言之,这是网页在客户端Web浏览器中本地存储命名键/值对的一种方式。与Cookie一样,即使您离开网站,关闭浏览器标签页,退出浏览器或有什么内容,这些数据仍然存在。

您可以在localStorage的提交事件中设置#btnFeedback中的值,然后在页面刷新时检查页面刷新时是否存在该值并重新打开它。

设置值:

 localStorage["isOpen"] = "1";

检查是否null

 var isOpen = localStorage["isOpen"];
 if ([null, undefined].indexOf(isOpen) == -1) {
        //data exists
 }

演示:http://jsfiddle.net/hungerpain/ZJvjJ/

另一种更好的方法是使用ajax提交表单。这样页面不会刷新并为用户提供良好的体验。

这是一个可以帮助您做到这一点的问题:jQuery AJAX submit form