我正在处理充满表格的简单测试页面。正如你几天前发布的那样,我现在使用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>
答案 0 :(得分:1)
setTimeout()不是一个ajax函数,它必须以字符串的形式传递一个函数句柄我相当肯定。另外,为什么你没有使用jquery,看到你在第一个代码块?
function sendRequest(abc)
{
$.get('loadfunc.php?abc='+abc,function(r)
{
$('#ReloadThis3').html(r);
setTimeout(function(){sendRequest(abc);},1000);
});
}