我正在尝试更改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>
答案 0 :(得分:6)
您在表单标记中缺少action属性。这经常会破坏浏览器中表单的功能。试试这个:
<form id="fhome" method="POST" action="mainpage">
当你劫持提交行为时,它不会对你的代码产生负面影响。
<强>更新强>
此外,您在此之后错过了结束</form>
代码和另一个结束</div>
代码。
您需要使用提交按钮吗?是否可以使用按钮及其相应的点击事件?
http://jsfiddle.net/shanabus/7yRph/3/
更新2 ,使用表单提交
解决结束标记后,添加preventDefault
方法调用以及here in the docs概述的data-ajax="false"
属性。
答案 1 :(得分:2)
挂钩submit
时,应确保处理程序返回false
(或在事件对象上调用preventDefault
),以防止提交的默认行为。