gpt4 book ai didi

javascript - 如果从 jqgrid colmodel 创建发布数据,如何删除 eval

转载 作者:行者123 更新时间:2023-11-28 16:27:57 24 4
gpt4 key购买 nike

下面的代码用于从 jqGrid colmondel 创建发布数据并发布它。它使用 eval() 因为帖子键/列名称未知。如何用更好的东西替换 eval() ?

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',
} );
}

最佳答案

您可以使用 . 表示法和 [] 表示法来获取和设置对象属性。

具体来说,obj.a === obj['a']

如果您不使用 '(或 "),[] 也接受变量,而 . 符号则不然。

所以,就你的情况而言:

postData[colModel[i].name] = val;

关于javascript - 如果从 jqgrid colmodel 创建发布数据,如何删除 eval,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7309627/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com