首页 > 解决方案 > 未捕获的类型错误:无法读取未定义的属性“substr”(javascript)

问题描述

我的控制台上有这个错误

下面是我正在使用的代码片段

JAVASCRIPT

get_items:函数(item_code)

if (key) {
        if (key.length == 13){
            if (key.startsWith('221')){
                    return $.grep(this.item_data, function (item) {
                    if(item.barcode !== null && item.barcode !== '') {

                           if (item.barcode.substr(0,7) == key.substr(0,7)) {                             
                                    pesokg1 = key.substr(7,6)

                                    if (pesokg1.startsWith('0000')){
                                            pesokg='0.' + pesokg1.substr(4)
                                    }else if (pesokg1.startsWith('000')){
                                            pesokg='0.' + pesokg1.substr(3)
                                    }else if (pesokg1.startsWith('00')){
                                            pesokg='0.' + pesokg1.substr(2)
                                    }else if (pesokg1.startsWith('0')){
                                            pesokg=pesokg1.substr(1,1) +'.' + pesokg1.substr(2,pesokg1.length)
                                    }else if (!pesokg1.startsWith('0')){
                                            pesokg=pesokg1.substr(0,2) +'.' + pesokg1.substr(2,pesokg1.length)

                                    }

                                    search_status = false;
                                    return true
                            }
                    }
                    })

            }
      }

标签: javascriptpythonerpnextfrappe

解决方案


好像线

if(item.barcode !== null && item.barcode !== '') {

缺少商品没有条形码的情况。所以要么添加未定义的检查

if(item.barcode !== null && item.barcode !== undefined && item.barcode !== '') {
  /* the code */
}

或者只是使用真实的检查

if(item.barcode) {
  /* the code */
}

推荐阅读