我在ajax调用后比较我的记录时遇到问题。所以我创建了标准的ajax调用,我发送参数,我使用这些参数从我的查询中获取记录。如果我没有任何记录,我想执行下一步,如果没有,我会输出警报。这是我使用的代码:
$j.ajax({
type: 'POST'
, url: 'Records.html'
, cache: false
, data: {'myQyery':sel,'myID':myID}
, async: false
, success: function(data)
{
var jsData = JSON.parse("{" + $j.trim(data).slice(0,-1) + "}");
for( var key in jsData){
if(jsData[key].duplicateID == ''){
alert('Run my code')
}else{
alert('You already signed in.')
}
}
}
, error: function(jqXHR, textStatus, errorThrown){ gwLogIt(errorThrown)}
});
如果我运行此代码并且在Ajax调用后有记录,我的代码工作正常。响应如下:
"1":{"duplicateID":"8"},
我得到了第二个警报。但是如果我在Ajax调用后没有任何记录,我的第一个警报永远不会被执行。我的回答是完全空白的,没有任何记录。所以我试图比较我的数据等于'',但这不起作用。如果在ajax调用后我的数据是空的,那么比较另一种方法是什么?这样我的第一个if语句可以执行吗?
答案 0 :(得分:1)
而不是检查jsData[key].duplicateID == ''
我使用if(Object.keys(jsData).length == 0)
。这样,如果我没有返回任何记录,我的数据就等于0.