如果使用ajax对象为Null,则无法读取null的属性'id'

时间:2017-10-12 04:41:57

标签: javascript jquery ajax

我正在尝试使用ajax检索数据并成功显示数据,但是当数据不存在时我有问题我想尝试更改其值,但是我的脚本出现了什么问题?及其错误消息是

Uncaught TypeError: Cannot read property 'id' of null //this error 

    $('[name="changeID"]').change(function () {
        var url = base_url+'tools/get_id';
        var idTools = $('[name="number_tools"]').val();

        $.ajax({
            url : url,
            type: 'POST',
            dataType: "JSON",
            data: { id : idTools},
                    success: function(data) { 
                        var result = data.id;
                        var getNewID = parseInt(result.substr(result.length -3)) + 1;

                        if (!data) {
                            $('[name="id"]').val("000"); //error here                               
                        }else{
                            $('[name="id"]').val(getNewID);                             
                        }
                        console.log(result);
                    },
                    error: function (request, jqXHR, textStatus, errorThrown) { 
                        console.log(request.responseText);
                    }
        }); 
    }); 

2 个答案:

答案 0 :(得分:1)

将您的ajax响应更改为以下格式

if(!data) 
{ 
     $('[name="id"]').val("000"); 
}
else
{ 
     var result = data.id;.                   
     var getNewID = parseInt(result.substr(result.length -3)) + 1;
     $('[name="id"]').val(getNewID);
}

答案 1 :(得分:0)

在检查null之前,您使用data对象。如果data为空,那么显然您会收到Uncaught TypeError: Cannot read property 'id' of null的错误。您必须使用if (!data) { }条件中的数据。