0

我有一个 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>

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

谢谢。

4

1 回答 1

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 提交表单

于 2013-07-08T07:27:37.163 回答