使用Parse.com和Phonegap;用户注册麻烦

时间:2013-04-03 16:27:05

标签: javascript html parsing cordova parse-platform

我正在使用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. 用户输入所需的用户名&amp;密码,点击提交按钮。
  2. 单击
  3. “adduserbutton”,触发main.js存储数据?
  4. 用户名和密码表示存储在用户Parse对象中的文本字段。
  5. 用户注册到我的Parse表中。
  6. 然而,我点击提交按钮,页面闪烁(似乎刷新),没有任何反应。没有错误,我的数据库中没有任何内容。有帮助吗?谢谢!

2 个答案:

答案 0 :(得分:0)

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

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

否则我只能建议使用一些工具进行调试:

Ripple emulator

和chrome工具供开发人员调试,看看是否

$(“#adduserbutton”)。on(“touchend”,函数(e)完全触发。似乎不是解析的东西,我猜你的Parse recived的API请求是0或者至少没有增加

希望这有帮助!

答案 1 :(得分:0)

解决了这个问题!

在Main.js中更改了我的js行:

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

为:

document.getElementById('adduserbutton').onclick = function() {