我使用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