表单上的jquery mobile changePage提交不正常

Kir*_*ran 1 jquery jquery-mobile

我试图在Jquery中的表单提交上更改页面,但是,它不起作用.它会滑动显示相同的页面,而不是导航到目标页面.下面是代码.有什么见解吗?我尝试使用"#mainpage","index.html#mainpage"但仍然是相同的结果.链接:jsfiddle.net/7yRph/1

<!DOCTYPE html> 
<html> 
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <title>Multi-page template</title> 
    <link rel="stylesheet" href="jquery.mobile-1.0.min.css" />
    <script src="jquery-1.6.4.min.js"></script>
    <script src="jquery.mobile-1.0.min.js"></script>
    <script type="text/javascript">
    $('#launchpage').live('pagecreate',function(event) { 
        $('#fhome').submit( function () {
            $.mobile.changePage("mainpage");
        });
    });
    </script>
</head> 
<body> 

<!-- PAGE: launchpage -->
<div data-role="page" id="launchpage">
    <div data-role="header">
        <h1 data-theme="g" >Personal Details</h1>
    </div><!-- /header -->

    <div data-role="content" >  
        <div class="content-primary">
        <form id="fhome" method="POST" >
            <div data-role="none">
                <p> Lets begin: </p>
            </div>
            <br/>           
            <div data-role="fieldcontain">
                <fieldset data-role="controlgroup" data-type="horizontal" >
                    <legend>Are you providing information about yourself?</legend>
                        <label for="launchradioyes">Yes</label>
                        <input type="radio" name="radio-choice" id="launchradioyes" value="yes" />
                        <label for="launchradiono">No</label>
                        <input type="radio" name="radio-choice" id="launchradiono" value="no" />
                </fieldset>
            </div>
            <input type="submit" value="Next" data-theme="a" />
            <br/>
         </form>
    </div><!-- /content -->

    <div data-role="footer" data-theme="d">

    </div><!-- /footer -->
</div><!-- /launch page -->

<!-- PAGE: mainpage -->
<div data-role="page" id="mainpage">
    <div data-role="header">
        <h1>Testing page navigation II</h1>
    </div><!-- /header -->

    <div data-role="content" >  
        <div class="content-primary">
            <div data-role="none">
             <label for="idprimary">ID:</label>
             <input type="tel" name="idprimary" id="idprimary" value="" />
            </div>
            <br/>           
    </div><!-- /content -->

    <div data-role="footer" data-theme="d">
    </div><!-- /footer -->
</div><!-- /page one -->

</body>
</html>
Run Code Online (Sandbox Code Playgroud)

sha*_*bus 6

您在表单标记中缺少action属性.这经常会破坏浏览器中表单的功能.试试这个:

<form id="fhome" method="POST" action="mainpage">
Run Code Online (Sandbox Code Playgroud)

它不会对您的代码产生负面影响,因为您无论如何都要劫持提交操作.

UPDATE

此外,您在此之后缺少结束</form>标记和另一个结束</div>标记.

你需要使用提交按钮吗?是否可以使用按钮及其相应的点击事件?

http://jsfiddle.net/shanabus/7yRph/3/

更新2,使用表单提交

解析结束标记后,添加preventDefault方法调用和文档中data-ajax="false"概述的属性.

例如:http://jsfiddle.net/shanabus/7yRph/9/