这是问题是在使用easyui datagrid控件时候遇到的。
代码如下所示:
{field:'-',title:'操作',width:100,
formatter: function(value,row,index){
return "<a href='#' οnclick='edit("+row.uuid +")' >修改</a>";
}
}
这里如果row.uuid是数字,调用edit()方法是没有问题的,但是如果换位字符串那么问题就来了,xx undefined
因为js会把这里的row.uuid认为一个变量,所以会报这个错误。
好,解决方法就是将row.uuid用引号引起来,代码改为这样:
{field:'-',title:'操作',width:100,
formatter: function(value,row,index){
return "<a href='#' οnclick='edit('"+row.uuid +"')' >修改</a>";
}
}
这时候又会报错,
这是因为js中单双引号是配套使用的,如果将上述代码运行,就会看到
<a href='#' οnclick='edit('asdefas6sdaswwd')' >修改</a>
这时候看出问题了吧,就是引号的问题,js语法会认为οnclick=‘edit(‘是一个表达式
所以最终解决方案是这样的:
{field:'-',title:'操作',width:100,
formatter: function(value,row,index){
return "<a href='#' οnclick='edit(\""+row.uuid +"\")' >修改</a>";
}
}