我正在处理充满表单的简单测试页面。正如你们中的一个人几天前发布的那样,我现在使用 jquery 来使用 ajax 并避免在按下提交按钮之一后刷新页面。所以只要按照我在这里找到的模板:http: //jquery.malsup.com/form/
我已将这段代码添加到我的网页中:
<script>
$(document).ready(function() {
// bind 'myForm' and provide a simple callback function
$('#myForm').ajaxForm(function() {
alert("Thank you for your comment!");
});
});
</script>
我的经验是,现在表单可以完美运行,但是 ajax setTimeout 函数不再起作用!如果我删除以前的代码,ajax setTimeout 将再次工作。你们知道为什么会这样吗?
<script type="text/javascript">
function myff(abc)
{
var
$http,
$self = arguments.callee;
if (window.XMLHttpRequest) {
$http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
$http = new ActiveXObject('Msxml2.XMLHTTP');
} catch(e) {
$http = new ActiveXObject('Microsoft.XMLHTTP');
}
}
if ($http) {
$http.onreadystatechange = function()
{
if (/4|^complete$/.test($http.readyState)) {
document.getElementById('ReloadThis3').innerHTML = $http.responseText;
setTimeout(function(){$self(abc);}, 1000);
}
};
$http.open('GET', 'loadfunc.php' + '?abc=' + abc);
$http.send(null);
}
}
</script>
新代码:
<script>
$(document).ready(function() {
$('#s1hvform1').ajaxForm(function() {
});
sendreq(abc);
});
function sendreq(abc)
{
$.get('loadfu.php?abc='+abc,function(r)
{
$('#ReloadThis2').html(r);
setTimeout(function(){sendreq(abc);},1000); });
}
</script>
<div id="ReloadThis2">Loading data...</div>