0

我正在使用 Phonegap 和 Parse.com 构建一个 Android 应用程序来帮助“数据库”管理。我有一个 html 表单来保存用户“用户名”和用户“密码”,并带有一个 id 为“adduserbutton”的提交输入按钮。

这是我的 login.html 表单。(注意,这个 html 文件引用了一个名为“main.js”的文件,该文件存储了注册用户背后的逻辑。

            <form id ="adduser">
            <label for="text-3">Username:</label>
            <input type="text" data-clear-btn="true" id="username" id="text-3" placeHolder="Enter Desired Username">

            <label for="text-3">Password:</label>
            <input type="text" data-clear-btn="true" id="password" id="text-3" placeholder="Enter Desired Password">

            <input type="submit" id="adduserbutton" value="Add User">
            </form>

此表单将采用用户名和密码(尚未散列,目前只是测试)。Main.js 等待“adduserbutton”被点击,然后应该运行一个函数。这就是问题所在,所以这是我的 main.js 代码:

//Parse related keys
var PARSE_APP = "hidden for sake of post";
var PARSE_JS = "hidden for sake of post";

$(document).ready(function() {
Parse.initialize(PARSE_APP, PARSE_JS);

var user = new Parse.User();

$("#adduserbutton").on("touchend", function(e) {
alert("here");
e.preventDefault();

//Grab the user details, no real validation for now
var username = $("#username").val();
user.set("username", username);
var password = $("#password").val();
user.set("password", password);

user.signUp(null, {
           success: function(user) {
               alert("it worked")
           },
           error: function(user, error) {
               alert("error");
           }
    });

  });

如您所见,这里“应该”发生的是:

  1. 用户输入所需的用户名和密码,点击提交按钮。
  2. 单击“adduserbutton”,触发 main.js 来存储数据?
  3. 存储在用户 Parse 对象中的用户名和密码表单文本字段。
  4. 用户注册到我的 Parse 表中。

然而,我单击提交按钮,页面闪烁(似乎刷新),没有任何反应。没有错误,我的数据库中也没有显示任何内容。有什么帮助吗?谢谢!

4

2 回答 2

0

解决了问题!

将 Main.js 中的 js 行从:

$("#adduserbutton").on("touchend", function(e) {
alert("here");
e.preventDefault();

至:

document.getElementById('adduserbutton').onclick = function() {
于 2013-04-04T18:21:37.980 回答
0

我认为这是 touchend 的一个已知错误,具体取决于您使用的 android 版本:

https://code.google.com/p/android/issues/detail?id=19827

否则只能推荐使用一些工具进行调试:

波纹模拟器

以及 chrome 工具供开发人员调试并查看是否

$("#adduserbutton").on("touchend", function(e) 根本不会触发。这似乎不是解析的事情,我猜您 Parse 收到的 API 请求是 0 或至少没有增加。

希望这可以帮助!

于 2013-04-04T08:25:43.967 回答