Cannot read property 'field' of undefined (at _8 (jquery.numberbox.js:33))

问题描述:

页面端用了easyui的numberbox属性,然后在用js的方法修改值的时候,明明看到页面中的值是数字型(数量字段),

但是就是会报错

这种错误真的是很难理解,不过经过我的debug跟了一下,发现了问题所在,虽然页面中看到的是数字,但是在js代码中,赋值的时候,这个变量成了string类型了

很明显的发现,这个ProductQty的值是string了。

function ProductQty(newValue,oldValue) {
            if(newValue && oldValue && newValue != oldValue) {
                var row = $('#gridlist').datagrid('getSelected');
                var index = $('#gridlist').datagrid('getRowIndex',row);
                row.ProductQty = newValue;
                row.SalePrice = row.ProductQty * row.OriginalPrice * (row.DiscountRate / 10);
                $('#gridlist').datagrid('updateRow', {index: index, row: row});
                $('#gridlist').datagrid('endEdit',index);
                $('#gridlist').datagrid('beginEdit',index); 
                countPoint();
            }
        }

文件里标红的部分,发现了这个row对象里的ProductQty这个值变成了string类型了。

解决办法就是给这个转成Number即可

row.ProductQty = Number(newValue);
原文地址:https://www.cnblogs.com/Rexcnblog/p/6859267.html