У меня есть следующий HTML/JavaScript в моей index.htmlPhoneGap форма Ajax не работает
<html>
<head>
<meta charset="utf-8" />
<meta name="format-detection" content="telephone=no" />
<meta name="msapplication-tap-highlight" content="no" />
<!-- WARNING: for iOS 7, remove the width=device-width and height=device-height attributes. See https://issues.apache.org/jira/browse/CB-4323 -->
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" />
<link rel="stylesheet" type="text/css" href="css/index.css" />
<title>Hello World</title>
<script type="text/javascript">
function PostData() {
// 1. Create XHR instance - Start
var xhr;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else if (window.ActiveXObject) {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
else {
throw new Error("Ajax is not supported by this browser");
}
// 1. Create XHR instance - End
// 2. Define what to do when XHR feed you the response from the server - Start
xhr.onreadystatechange = function() {
if (xhr.readyState === 4) {
if (xhr.status == 200 && xhr.status < 300) {
document.getElementById('div1').innerHTML = xhr.responseText;
}
}
}
// 2. Define what to do when XHR feed you the response from the server - Start
var userid = document.getElementById("userid").value;
// 3. Specify your action, location and Send to the server - Start
xhr.open('POST', 'localhost:3000/ajax');
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send("userid=" + userid);
// 3. Specify your action, location and Send to the server - End
};
</script>
</head>
<body>
<div class="app">
<h1>Ajax Testarea</h1>
<form>
<label for="userid">User ID :</label>
<input type="text" name ="userid" id="userid" />
<div id="div1"></div>
<input type="button" value ="Check" onclick="PostData()" />
</form>
</div>
<script type="text/javascript" src="cordova.js"></script>
<script type="text/javascript" src="js/index.js"></script>
<script type="text/javascript">
app.initialize();
</script>
</body>
Который отлично работает на моем Mac, но когда я пытаюсь заставить его работать с PhoneGap I не можете нажать кнопку, чтобы отправить форму. И поэтому он не будет запускать функцию PostData().
Я также не уверен, что это хорошая практика, чтобы разместить Javascript непосредственно внутри html или лучше разместить его внутри index.js? Я прочитал о помещении его внутри:
onDeviceReady: function() {
app.receivedEvent('deviceready');
// ---My Code---
},
Я был бы очень рад, если кто-то может указывать мне, что я делаю неправильно!
Запустите свой код, когда вы получите событие, готовое к устройству. Как вы сказали в 'onDeviceReady' функции. – JcDenton86