我使用ajax進行測試,並在表單元素中使用onSubmit與onChange對比發現問題。如果我使用onSubmit方法調用ajax請求,我得到的狀態響應爲0,沒有文本響應。onChange和onSubmit之間的Javascript差異
頁使用的onsubmit調用Ajax請求:
<html>
<body>
<script language="javascript" type="text/javascript">
function ajaxFunction(){
var ajaxRequest;
ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.myForm.time.value = ajaxRequest.responseText;
alert(ajaxRequest.status);
}
}
ajaxRequest.open("GET", "serverTime.php", true);
ajaxRequest.send(null);
return false;
}
</script>
<form name='myForm' onsubmit="ajaxFunction();">
Name: <input type='text' name='username' /> <br />
Time: <input type='text' name='time' />
<input type="submit" id="submitTask" value="Get Time">
</form>
</body>
</html>
但是如果我打電話使用的onChange狀態響應Ajax請求是200和時間字段填充。 調用使用的onChange Ajax請求的頁面:
<html>
<body>
<script language="javascript" type="text/javascript">
function ajaxFunction(){
var ajaxRequest;
ajaxRequest = new XMLHttpRequest();
ajaxRequest.onreadystatechange = function(){
if(ajaxRequest.readyState == 4){
document.myForm.time.value = ajaxRequest.responseText;
alert(ajaxRequest.status);
}
}
ajaxRequest.open("GET", "serverTime.php", true);
ajaxRequest.send(null);
return false;
}
</script>
<form name='myForm'>
Name: <input type='text' onchange="ajaxFunction();" name='username' /> <br />
Time: <input type='text' name='time' />
<input type="submit" id="submitTask" value="Get Time">
</form>
</body>
</html>
ServerTime.php:
<?php
echo "test";//date("H:i:s");
?>
我想知道的區別是什麼的onsubmit和onchange事件的處理方式,爲什麼這個問題會之間正在發生。
任何幫助將不勝感激。
onSubmit當您點擊提交按鈕時觸發,onChange會在您更改輸入內容時觸發。 – Johnny000