JavaScript 函数未触发
JavaScript function not triggering
我有 2 个主要函数,除了变量名和它使用的 table 外,它们几乎完全相同。
我正在使用 phonegap,html,javascript,JQuery 手机。
第一个警报出现时正在访问函数 eventSoccer,但是数据输入未被存储,页面只是刷新。
函数 registerUser 工作得很好,显示 sql 查询并出现警报 'user has been registered' 并且数据在数据库中。
谁能确定为什么 eventSoccer 功能似乎不起作用?由于这两个功能几乎完美无缺。
eventSoccer -
function eventSoccer() {
alert("eventSoccer hit");
var TitleT = document.getElementById("txttitle").value;
var LocationL = document.getElementById("txtlocation").value;
var PeopleP = document.getElementById("txtpeople").value;
var DateD = document.getElementById("txtdate").value;
var DescriptionD = document.getElementById("txtdesc").value;
db = window.openDatabase("SoccerEarth", "2.0", "SoccerEarthDB", 2 * 1024 * 1024);
db.transaction(function(tx) {
NewSoccer(tx, TitleT, LocationL, PeopleP, DateD, DescriptionD);
}, errorEvent, successEvent);
}
function NewSoccer(tx, TitleT, LocationL, PeopleP, DateD, DescriptionD) {
var _Query = ("INSERT INTO SoccerEvents(Title, Location, NoPeople, Date, Description) values ('" + TitleT + "','" + LocationL + "','" + PeopleP + "','" + DateD + "', '" + DescriptionD + "')");
alert(_Query);
tx.executeSql(_Query);
}
function errorEvent(error) {
navigator.notification.alert(error, null, "Event not created", "cool");
}
function successEvent() {
navigator.notification.alert("The event has now been created", null, "Information", "ok");
}
注册用户 -
function registerUser() {
var Username = document.getElementById("txtusername").value;
var Firstname = document.getElementById("txtfirstname").value;
var Lastname = document.getElementById("txtlastname").value;
var Email = document.getElementById("txtemail").value;
var Password = document.getElementById("txtpassword").value;
var Confirmpass = document.getElementById("passwordconfirm").value;
db = window.openDatabase("SoccerEarth", "2.0", "SoccerEarthDB", 2 * 1024 * 1024);
db.transaction(function(tx) {
NewUser(tx, Username, Firstname, Lastname, Email, Password, Confirmpass);
}, errorRegistration, successRegistration);
}
function NewUser(tx, Username, Firstname, Lastname, Email, Password, Confirmpass) {
var _Query = ("INSERT INTO SoccerEarth(UserName, FirstName, LastName, Email, Password, CPass) values ('" + Username + "','" + Firstname + "','" + Lastname + "','" + Email + "', '" + Password + "', '" + Confirmpass + "')");
alert(_Query);
tx.executeSql(_Query);
}
function errorRegistration(error) {
navigator.notification.alert(error, null, "Got an error mate", "cool");
}
function successRegistration() {
navigator.notification.alert("User data has been registered", null, "Information", "ok");
}
HTML -
<div data-role="content">
<br>
<form>
<label for="txttitle">Title</label>
<input type="text" id="txttitle">
<br>
<label for="txtlocation">Location</label>
<input type="text" id="txtlocation">
<br>
<label for="txtpeople">Number Of People</label>
<input type="text" id="txtpeople">
<br>
<label for="txtdate">Date</label>
<input type="text" id="txtdate">
<br>
<label for="textdesc">Description</label>
<textarea name="textarea" id="textdesc"></textarea>
<br>
<input type="submit" value="submit" onclick="return eventSoccer()">
</form>
</div>
我认为它在这里中断:
var DescriptionD = document.getElementById("txtdesc").value;
document.getElementById("txtdesc") = null,因为你的HTML中没有'txtdesc'(你有'textdesc')
因此我们有 document.getElementById("txtdesc").value <=> null.value - 这将 definitely 抛出错误并且抛出中断代码的正常执行。
顺便说一句 - 我很困惑这实际上是如何工作的:
<input type="submit" value="submit" onclick="return eventSoccer()">
我至少会写成这样:
<input type="submit" value="submit" onclick="eventSoccer(); return false;">
所以提交点击不会发送表单?或者你的意图是发送表格?无论如何 - 这是你在这件事上的选择。
我有 2 个主要函数,除了变量名和它使用的 table 外,它们几乎完全相同。
我正在使用 phonegap,html,javascript,JQuery 手机。
第一个警报出现时正在访问函数 eventSoccer,但是数据输入未被存储,页面只是刷新。
函数 registerUser 工作得很好,显示 sql 查询并出现警报 'user has been registered' 并且数据在数据库中。
谁能确定为什么 eventSoccer 功能似乎不起作用?由于这两个功能几乎完美无缺。
eventSoccer -
function eventSoccer() {
alert("eventSoccer hit");
var TitleT = document.getElementById("txttitle").value;
var LocationL = document.getElementById("txtlocation").value;
var PeopleP = document.getElementById("txtpeople").value;
var DateD = document.getElementById("txtdate").value;
var DescriptionD = document.getElementById("txtdesc").value;
db = window.openDatabase("SoccerEarth", "2.0", "SoccerEarthDB", 2 * 1024 * 1024);
db.transaction(function(tx) {
NewSoccer(tx, TitleT, LocationL, PeopleP, DateD, DescriptionD);
}, errorEvent, successEvent);
}
function NewSoccer(tx, TitleT, LocationL, PeopleP, DateD, DescriptionD) {
var _Query = ("INSERT INTO SoccerEvents(Title, Location, NoPeople, Date, Description) values ('" + TitleT + "','" + LocationL + "','" + PeopleP + "','" + DateD + "', '" + DescriptionD + "')");
alert(_Query);
tx.executeSql(_Query);
}
function errorEvent(error) {
navigator.notification.alert(error, null, "Event not created", "cool");
}
function successEvent() {
navigator.notification.alert("The event has now been created", null, "Information", "ok");
}
注册用户 -
function registerUser() {
var Username = document.getElementById("txtusername").value;
var Firstname = document.getElementById("txtfirstname").value;
var Lastname = document.getElementById("txtlastname").value;
var Email = document.getElementById("txtemail").value;
var Password = document.getElementById("txtpassword").value;
var Confirmpass = document.getElementById("passwordconfirm").value;
db = window.openDatabase("SoccerEarth", "2.0", "SoccerEarthDB", 2 * 1024 * 1024);
db.transaction(function(tx) {
NewUser(tx, Username, Firstname, Lastname, Email, Password, Confirmpass);
}, errorRegistration, successRegistration);
}
function NewUser(tx, Username, Firstname, Lastname, Email, Password, Confirmpass) {
var _Query = ("INSERT INTO SoccerEarth(UserName, FirstName, LastName, Email, Password, CPass) values ('" + Username + "','" + Firstname + "','" + Lastname + "','" + Email + "', '" + Password + "', '" + Confirmpass + "')");
alert(_Query);
tx.executeSql(_Query);
}
function errorRegistration(error) {
navigator.notification.alert(error, null, "Got an error mate", "cool");
}
function successRegistration() {
navigator.notification.alert("User data has been registered", null, "Information", "ok");
}
HTML -
<div data-role="content">
<br>
<form>
<label for="txttitle">Title</label>
<input type="text" id="txttitle">
<br>
<label for="txtlocation">Location</label>
<input type="text" id="txtlocation">
<br>
<label for="txtpeople">Number Of People</label>
<input type="text" id="txtpeople">
<br>
<label for="txtdate">Date</label>
<input type="text" id="txtdate">
<br>
<label for="textdesc">Description</label>
<textarea name="textarea" id="textdesc"></textarea>
<br>
<input type="submit" value="submit" onclick="return eventSoccer()">
</form>
</div>
我认为它在这里中断:
var DescriptionD = document.getElementById("txtdesc").value;
document.getElementById("txtdesc") = null,因为你的HTML中没有'txtdesc'(你有'textdesc')
因此我们有 document.getElementById("txtdesc").value <=> null.value - 这将 definitely 抛出错误并且抛出中断代码的正常执行。
顺便说一句 - 我很困惑这实际上是如何工作的:
<input type="submit" value="submit" onclick="return eventSoccer()">
我至少会写成这样:
<input type="submit" value="submit" onclick="eventSoccer(); return false;">
所以提交点击不会发送表单?或者你的意图是发送表格?无论如何 - 这是你在这件事上的选择。