2

我正在使用 phonegap 开发移动应用程序,并尝试使用 jquery 集成表单以将数据发布到 sql 数据库,但表单似乎以一种奇怪的方式运行。如果我将应用程序设置为在应用程序启动时直接导航到表单页面,它工作正常,但如果我尝试从不同的初始页面导航到表单页面,表单将拒绝工作。问题似乎在于在第一个初始页面上声明 jquery 移动脚本。

如果有人知道发生了什么,那就太好了,因为我就是想不通!

带有链接的页面的 HTML

<!DOCTYPE HTML>
<html lang="en-US">
<head>     
<title>jQuery form post</title> 
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />

</head>
<body>
<div data-role="page" class="ui-responsive-panel" >
<div data-role="header" >
    <h1>New Submission</h1>
</div>      

<div data-role="content">

<a href="comment_2.html" data-role = "button">New Submission</a>

</div>

</body>
</html>

带有表单的页面的 HTML

<!DOCTYPE HTML>
<html lang="en-US">
<head>     
<title>jQuery form post</title>   
<script src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.js"></script>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.0/jquery.mobile-1.3.0.min.css" />
<script src="js/post.js"></script> 

</head>
<body>
<div data-role="page" class="ui-responsive-panel" >
<div data-role="header" >
    <h1>New Submission</h1>
</div>      

<div data-role="content">

<div id="landmark-1" data-landmark-id="1">
<form id="comment">
    <label for="email">
        <b>Email</b>
        <input type="email" id="email" name="email">
    </label>

    <label for="comment">
        <b>Comment</b>
        <textarea id="comment" name="comment" cols="30" rows="10"></textarea>
    </label>

    <input type="submit" value="Save">
</form>
</div>

</div>

</body>
</html>
4

2 回答 2

0

只需在 comment.html 页面头部分添加:

<script src="js/post.js"></script>

应该管用?!还是我错过了什么?

于 2013-05-03T13:36:03.490 回答
0

当它不是第一页时,jQuery mobile 甚至不包括您的 post.js。这就是它的工作原理,加载第一页上的所有内容,然后通过 AJAX 注入 data-role="page"。此处记录了此行为。

要修复它,您有两种选择:

  1. 使用页面更改事件之一来执行代码。
  2. 将您的代码移动到 data-role="page" div 中。
于 2013-05-03T14:27:33.293 回答