这是ajax函数,我希望当数据为null
或undefined
而不是输出(#access element
)时显示为空"" (如果为null或未找到,则不保存输出中的任何数据)
$(function(){
$('#userId').on('keyup', function () {
var value=$(this).val();
$.ajax('/projectname/admin/getUserAccess/' + value,
{
dataType: 'JSON',
success: function(data){
var str = data.access.replaceAll(/\|/g, ',');
var result = str.substring(1, str.length - 1);
$("#access").val(result);
}
});
});
});
答案 0 :(得分:0)
如果数据存在与否,只需添加一个条件来检查
If(data) {
var str = data.access.replaceAll(/\|/g, ',');
var result = str.substring(1, str.length - 1);
$("#access").val(result);
}
答案 1 :(得分:0)
我建议添加一个简单的通用函数来检查空白/未定义,因为这对项目的其他部分也很方便。通用函数如下: -
function isEmpty(value) {//Function to check if value is Empty or Null
switch (typeof(value)) {
case "string": return (value.length === 0);
case "number":
case "boolean": return false;
case "undefined": return true;
case "object": return !value ? true : false; // handling for null.
default: return !value ? true : false
}
}
然后按如下方式更新您的成功: -
success: function(data){
if(isEmpty(data)){
$("#access").html(data); //Notice it is Html and not val as you want data displayed
}else {
window.alert('Nothing Returned');//If at all you want an Alert
$("#access").html('');//Sets the $("#access") with nothing to display
}
我希望这能解决障碍
答案 2 :(得分:0)
感谢所有评论和回答我了解更多其他答案:) 我添加了行$("#access")。val("")并修复了问题。
success: function(data){
$("#access").val("");
var str = data.access.replaceAll(/\|/g, ',');
var result = str.substring(1, str.length - 1);
$("#access").val(result);
}