出现问题的原因:传入一个字符数为0开头的数字时,js将会吧此字符串当做8进制数字进行处理。 (十六进制数是用0x开头的)如0123讲转换为83。
这时需要将参数转换为String类型。需要在参数前后加上 \' 和 '\
如: (row.numPrefix为需要转换的参数)
gNumAnalysisEdit(\'' + row.numPrefix + '\',' + row.xxx + ')
或者
gNumAnalysisEdit('+ row.xxx+', \'' + row.numPrefix + '\)
<a href="javascript:void(0)" onclick="gNumAnalysisEdit(\''+ row.numPrefix+'\',' + row.callSource +','+id+','+neType+')" ....../>
function gNumAnalysisEdi(numPrefix,callSource,isgwId,neType) {
......
}
一般来说,js传值到js方法中的值为number类型,当直接传入String类型的值时会报错。:Failed to convert value of type 'java.lang.String' to required type 'java.lang.Integer'; nested exception is java.lang.NumberFormatException: For input string: "undefined"
解决方法同上,添加 \' 和 '\