jquery ajax form + ajax setTimeout don not work



我正在处理我的简单测试页面,里面充满了表单。正如你们中的一个人几天前发布的那样,我现在使用 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>

setTimeout()不是ajax函数,它必须以字符串的形式传递函数句柄,我相当确定。另外,为什么你不使用jquery,就像你在第一个代码块中一样?

function sendRequest(abc)
{
    $.get('loadfunc.php?abc='+abc,function(r)
    {
        $('#ReloadThis3').html(r);
        setTimeout(function(){sendRequest(abc);},1000);
    });
}

最新更新