Javascript 如果从jqgrid colmodel创建post数据,如何删除eval
下面的代码用于从jqGrid colmondel创建post数据并进行post。 它使用eval(),因为post键/列名称未知。 如何将eval()替换为更好的Javascript 如果从jqgrid colmodel创建post数据,如何删除eval,javascript,jquery,jqgrid,jslint,Javascript,Jquery,Jqgrid,Jslint,下面的代码用于从jqGrid colmondel创建post数据并进行post。 它使用eval(),因为post键/列名称未知。 如何将eval()替换为更好的 function gridValidate(elem, column, entity, eventText) { var i, row, postData = { _column: column, _entity: entity }, colModel = $("#grid").jqGrid
function gridValidate(elem, column, entity, eventText) {
var i,
row,
postData = { _column: column, _entity: entity },
colModel = $("#grid").jqGrid('getGridParam', 'colModel'),
val;
row = $(elem).closest('tr.jqgrow');
postData._rowid = row.attr('id');
for (i = 1; i < colModel.length; i = i + 1) {
if (colModel[i].edittype !== "textarea") {
switch (colModel[i].edittype) {
case "custom":
val = $('#' + postData._rowid + '_' + colModel[i].name).find("input").val();
break;
default:
val = $('#' + postData._rowid + '_' + colModel[i].name).val();
break;
}
eval('postData.' + colModel[i].name + '=val');
}
}
}
$.ajax('Grid/Validate', {
data: postData,
type: 'POST',
} );
}
函数gridValidate(元素、列、实体、事件文本){
var i,
一行
postData={u列:列,{u实体:实体},
colModel=$(“#grid”).jqGrid('getGridParam','colModel'),
瓦尔;
行=$(elem).closest('tr.jqgrow');
postData._rowid=row.attr('id');
对于(i=1;i
您可以使用
符号和[]
符号来获取和设置对象属性
具体来说,obj.a===obj['a']
如果不使用”
(或“
),则[]
符号也接受变量,而
符号则不接受
因此,在你的情况下:
postData[colModel[i].name] = val;
您可以使用
符号和[]
符号来获取和设置对象属性
具体来说,obj.a===obj['a']
如果不使用”
(或“
),则[]
符号也接受变量,而
符号则不接受
因此,在你的情况下:
postData[colModel[i].name] = val;
替换
eval('postData.' + colModel[i].name + '=val');
与:
这应该可以满足您的需要。替换
eval('postData.' + colModel[i].name + '=val');
与:
这应该能实现你想要的