在s中设置值:使用jquery ajax选择

时间:2011-05-04 07:06:47

标签: jquery ajax

我必须使用ajax调用重置页面上的值。 我正在使用Jquery来执行此操作。

必须在多选列表中重置这些值。

如果我更改了选择框中的值并单击重置,则必须在列表中设置DB中最后保存的值。

我正在尝试下面的

            function resetNameDetails() {

                            $.ajax({
                                            type: "POST",
                                            url: 'resetNameDetailsAction.action?,
                                            error: function(data) {
                                                            alert("error");
                                            },
                                            success: function(data) {

                                                            alert("sucess");
                                                            alert(data.userModel.nameList);

                                            }
                            });

            }

成功的第二个警报仅提供对象列表。我如何将此数据传输到选择控件。


更新

var nameListData = data.userModel.nameList; 
var select = document.getElementById('nameList'); 
alert(select); 
select.options.length = 0; // clear out existing items 
for(var i=0; i < nameListData.length; i++) { 
  var d = nameListData[i]; 
  alert(d); 
  select.options.add(new Option(d, i)) 
} 

显示填充了[Object object]

的列表

1 个答案:

答案 0 :(得分:0)

假设data.userModel.nameList是一个值数组,您可以这样做:

...
success: function(data) {
   var values = data.userModel.nameList;
   $(":checkbox").each(function(){
      var value = $(this).attr("value");
      if($.inArray(value, values))
          $(this).attr("checked", true);
      else
          $(this).attr("checked", false);
   });    
}
...

编辑:这是复选框列表。对于多选,请执行以下操作:

...
    success: function(data) {
       var values = data.userModel.nameList;
       $("#your_select option").each(function(){
          var value = $(this).attr("value");
          if($.inArray(value, values))
              $(this).attr("selected", true);
          else
              $(this).attr("selected", false);
       });    
    }
...

希望这会有所帮助。干杯