我有一个包含多个表单输入的表单,其定义如下:
<input type="text" name="aname" id="aname" class="form-control dataaccess" data-field="GID" />
<input type="text" name="sname" id="sname" class="form-control dataaccess" data-field="LID" />
然后我有一个ajax函数,其成功函数从控制器返回一个结果集以显示在页面中。这是我的代码
$.ajax({
type: "POST",
url: "controller/method",
data: "id="+data,
success: function(data){
$(".dataaccess").each(function(){
var field=data[0].($(this).data("field"));
$("#"+$(this).attr("id")).val(field);
});
});
但是,我的结果集没有与我从相应的输入数据字段属性获得的字段名连接。我在哪里弄错了?谢谢
数据返回的数据:
[{"ID":"GR02","Name":"Admins","Valid":"30","Block":"No ","Descr":"Description"}]
答案 0 :(得分:0)
试试这个:
success: function(data){
$(".dataaccess").each(function(){
var field=data[0].($(this).data("field"));
console.log(field);
$(this).val(field);
});
});
答案 1 :(得分:0)
对于动态属性,不应使用属性访问器(。),可以使用索引表示法
$.ajax({
type: "POST",
url: "controller/method",
data: "id="+data,
success: function(data){
$(".dataaccess").each(function(){
var self = this;
var field=data[0][$(self).data("field")];
$("#"+$(self).attr("id")).val(field);
});
});
在ajax调用之外将this
的引用定义为self
,这样在ajax执行时就可以使用。
答案 2 :(得分:0)
在用于连接的JavaScript或JQuery + Operator中:
var field=data[0]+($(this).data("field"));