如何在jquery中的do while循环中停止setInterval

2 html javascript ajax jquery setinterval

我想做的是在do while循环满足条件后停止setInterval.

我的问题是即使while循环条件满足setInterval仍在运行.

do
{
setInterval(
Vinformation();
,500);
}while($('#emailCodeResult').val() !='')

function Vinformation(){
   var data = {};
        data.emailCodeResult = $('#emailCodeResult').val();

    $.ajax({
        type: "POST",
        url: "Oppa.php",
        data: data,
        cache: false,
        dataType:"JSON",
        success: function (result) {



        }
     });
            return false;
}
Run Code Online (Sandbox Code Playgroud)

dfs*_*fsq 5

你根本不需要while循环.结合setInterval它没有意义.你需要的可能只是setInterval:

var interval = setInterval(Vinformation, 500);

function Vinformation() {

    if ($('#emailCodeResult').val() == '') {
        clearInterval(interval);
        return;
    }

    var data = {};
    data.emailCodeResult = $('#emailCodeResult').val();

    $.ajax({
        type: "POST",
        url: "Oppa.php",
        data: data,
        cache: false,
        dataType: "JSON",
        success: function (result) {
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

使用clearInterval功能来停止间隔.

还要注意,setInterval期望函数引用作为第一个参数,因此这setInterval(Vinformation(), 500)是不正确的,因为您立即调用该Vinformation函数.