我正在使用 ajax 进行测试,并在表单中使用 onSubmit 与在表单元素中使用 onChange 时遇到了问题。如果我使用 onSubmit 方法调用 ajax 请求,我得到的状态响应为 0,没有文本响应。
使用 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 并填充 Time 字段。使用 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>
服务器时间.php:
<?php
echo "test";//date("H:i:s");
?>
我想知道处理 onsubmit 和 onchange 的方式之间有什么区别,以及为什么会出现这个问题。
任何帮助将不胜感激。