AJAX 条件内追加

AJAX conditional inside append

本文关键字:追加 条件 AJAX      更新时间:2023-09-26

我有一个对API的Ajax调用,该API检索子集中的汽车及其相关规格的列表。 这显示在我的追加中的div 中。 我取一个值default_spec_id并尝试与每辆车的 id 进行比较。 如果它相等,它将 var 默认值设置为"选中"。

但是,它根本没有检索准确的结果,并且汽车的默认规格是将选中状态设置为错误的复选框。

的问题基本上是,我能做到这个逻辑吗,怎么做?

$.getJSON("{{ url('api/checkcars')}}", { option: $(this).val() }, 
function(data) {
    if ( data.success == true ) { 
        $.each(data.cars, function(key, value) { 
            var isDefault = data.default_spec_id;
            if (isDefault === value.id)  {
                defaultset =  'checked';
            } 
            $('#cars').append('<div><input type="radio" value="' + value.id +'" name="spec" ' +  defaultset +'> ' +  value.title +'</div>');
        });
    }
});

杰伦

{
id: 7,
name: "renault clio",
default_spec_id: 8,
cars: [
   {
     id: 8,
     name: "Spec name 1",
     description: ""
     }
   },
   {
     id: 9,
     name: "Spec name 2",
     description: ""
   }
  }
 }
]
}

问题是你正在使用我们的var关键字创建一个名为defaultset的变量。

所以基本上它会将其分配给全局范围。

您的代码必须如下所示

$.getJSON("{{ url('api/checkcars')}}", { option: $(this).val() }, 
function(data) {
    if ( data.success == true ) { 
        $.each(data.cars, function(key, value) { 
            var isDefault = data.default_spec_id;
            var defaultset = "";
            if (isDefault === value.id)  {
                defaultset =  'checked';
            } 
            $('#cars').append('<div><input type="radio" value="' + value.id +'" name="spec" ' +  defaultset +'> ' +  value.title +'</div>');
        });
    }
});