jQuery Mobile:提交的表单不会停留在“谢谢”页面上

时间:2014-03-06 07:54:48

标签: jquery-mobile

我是jQuery mobile的新手,我刚刚开始将它用于一个只能通过智能手机使用的WordPress网站。我喜欢它现在的样子,我将jQm添加到等式中。

我遇到的问题是,在我提交表单后,它正确地将我带到了“谢谢”页面,此页面上只有一行文字阅读“谢谢您的播放”,但在此之后立即它可以追溯到它来自的原始形式。我可能无法更好地解释这一点,所以我在这里录制了一个带有问题的视频:http://screencast.com/t/QMD0BProSg

如果我使用“$ .mobile.ajaxEnabled = false;”禁用ajax它的工作原理,意味着它不会回到我的形式,但启用ajax并按照预期的方式工作,将摆脱我的其他几个问题。修复此行为将为我节省大量时间!

这是HTML:

<form id="stop-spin" action="/thanks-for-playing" method="post">
    <input type="hidden" id="stop-spin-nonce" name="stop-spin-nonce" value="c96ef6a79f">
    <input type="hidden" name="_wp_http_referer" value="/spinner/">
</form>
<div class="play-button">
    <a href="javascript:void(0);" id="start-rotation" class="ui-link"></a>
    <a href="javascript:void(0);" id="stop-rotation" style="display: none;" class="ui-link"></a>
</div>

为了简单起见,我删除了额外的元素,但值得注意的是我的表单里面没有按钮,我所做的是通过jQuery捕获#stop-rotation锚点的Click事件,我做了表格在那里提交。

这是我的jQuery:

$( document ).on( 'pageinit ready', function() {
    $( document ).on( 'click', '.play-button a#stop-rotation', function() {
        $( '#stop-spin' ).submit();
    });
});

我可能会遗漏一些明显的东西,有人可以帮我解决这个问题吗?

目前这个小应用程序只是本地应用程序,但如果有人想要整体看一下,我可以尝试构建一个小提琴或上传到我的测试服务器。

提前感谢您的任何帮助

1 个答案:

答案 0 :(得分:0)

更正了您的代码,这应该可以胜任。您永远不需要在JQM中使用ready()事件,例如将其替换为pageinit()或pageshow()。

$( document ).on( 'pageinit', function() {
    $( '.play-button a#stop-rotation' ).on( 'click', function() {
        $( '#stop-spin' ).submit();
        return false;
    });
});