我有一个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>
你们建议是否有办法在提交后保持弹出框打开。
感谢。
答案 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