我有一个正常工作的递归Ajax调用(PhP脚本调用他的工作,递归工作,一切都很好)除了在ajax调用之间我尝试更新输入文本值以显示进度,它只整个循环完成后更新。
为什么是
行$('#start_'+code_regional).val(msg);
没有执行?
function addLeads(code_regional, phone_numbers_start)
{
var databases = [];
var file = document.getElementById('file_'+code_regional).files[0];
var formData = new FormData();
formData.append('selectedDatabases', JSON.stringify(databases));
formData.append('code_regional', code_regional);
formData.append('phone_numbers_start', phone_numbers_start);
formData.append('phone_numbers_end', $('#end_'+code_regional).val());
formData.append('filePath', file);
$.ajax({
type: 'POST',
url: 'execute.php',
data: formData,
processData: false,
contentType: false,
success: function(msg){
$('#start_'+code_regional).val(msg);
if(msg < $('#end_'+code_regional).val())
{
addLeads(code_regional, msg);
}
else
{
$('#start_'+code_regional).val($('#end_'+code_regional).val());
}
}
});
}
答案 0 :(得分:1)
如果msg
是整数,则应该比较整数而不是字符串:
if( parseInt(msg,10) < parseInt($('#end_'+code_regional).val(),10) )
如果仍然失败,请尝试在测试之前和之后添加console.log(...)
,以了解发生了什么。
答案 1 :(得分:1)
在ajax调用之间你是什么意思?代码告诉我,“如果msg小于y,再次调用addLeads,否则更新start字段”。因此,不跟踪进度,开始字段仅在结束时更新。如果要始终更新,请将更新行移到条件之外。