【问题标题】:Connecting to db in cordova android app在cordova android应用程序中连接到数据库
【发布时间】:2015-04-08 15:42:11
【问题描述】:

我正在尝试使用 Phonegap 开发应用程序。在此应用程序中,我需要创建一个简单的注册表单并将其连接到数据库,以便用户详细信息将存储在数据库中。但是当尝试运行创建的应用程序时,我'我在 LogCat 中遇到以下错误。我已经寻找解决方法,但无法修复它。

LogCat 中的错误:

file:///android_asset/www/js/index.js:第 41 行:TypeError:表达式“parentElement”[null] 的结果不是对象。

ReferenceError:找不到变量:$ at file:///android_asset/www/Register.html:68

index.js 文件:

var app = {
// Application Constructor
initialize: function() {
    this.bindEvents();
},
// Bind Event Listeners
// Bind any events that are required on startup. Common events are:
// 'load', 'deviceready', 'offline', and 'online'.
bindEvents: function() {
    document.addEventListener('deviceready', this.onDeviceReady, false);
},
// deviceready Event Handler
// The scope of 'this' is the event. In order to call the 'receivedEvent'
// function, we must explicitly call 'app.receivedEvent(...);'
onDeviceReady: function() {
    app.receivedEvent('deviceready');
},
// Update DOM on a Received Event
receivedEvent: function(id) {
 var parentElement = document.getElementById(id);
 var listeningElement = parentElement.querySelector('.listening'); //line 41
 var receivedElement = parentElement.querySelector('.received');

    listeningElement.setAttribute('style', 'display:none;');
    receivedElement.setAttribute('style', 'display:block;');

    console.log('Received Event: ' + id);  
      } 
    };
    app.initialize();

Register.html 中的第 68 行是 insertDB(tx) 函数中的以下代码。

    var insertname = $('[name="name"]').val();

登记表相关代码。

<div data-role="page" id="page1"> 
    <div data-role="header" >
        <h1>Register</h1>

    </div>

   <div data-role="content">
    <form method="get" onsubmit="" >
      <fieldset class="ui-field-contain">

        <label for="name">Name</label>
        <input type="text" name="name" id="name" value="" />
        <p>    </p>
        <label for="email">Email</label>
        <input type="email" name="email" id="email" value="" />
        <p>    </p>
        <label for="password">Password </label>
        <input type="password" name="password" id="password" value="" autocomplete="off"/>
       <br />
        <button class="ui-btn-right" onclick='return submitForm()'>Register</button>


        </fieldset>
      </form>
  </div>
  </div>

【问题讨论】:

  • 这个错误意味着你的 html 中没有包含 jquery .js 脚本。
  • 其实我已经包含了..

标签: javascript android html database cordova


【解决方案1】:

第68行,能不能改成:

var insertname = $('#name').val();

var insertname = document.getElementsByName("name");

得到你预期的结果?

【讨论】:

  • 非常感谢史蒂夫 :) var insertname = document.getElementsByName("name"); 为我工作 :)
猜你喜欢
  • 1970-01-01
  • 2012-09-30
  • 2011-07-28
  • 2015-03-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多