2013-12-20 38 views
1

我可能在这里丢失了一些明显的东西。我对选择完全陌生,所以我承认我的无知。 我正在使用Asp.NET MVC选择多个选项。当用户手动选择值时,它工作正常。 但是,当我使用Ajax调用来预先选择一些值时(我选择的选项列表中已存在的值)未发布选定的值。更新选择动态完成时未张贴选项

这里我的代码看起来像

  $.ajax({ type: "POST", 
      url: "/Project/GetProjectCrewMemberIds", 
      traditional: true, 
      //dataType:'json', 
      data: { projectId: selectedProject }, 
      success: function (data) { 

       $('ul.chosen-choices').empty(); 
       $.each(data, function (index, item) {       

        $('ul.chosen-choices').append('<li class="search-choice"><span>' + item.text + '</span><a class="search-choice-close" data-option-array-index="' + item.value + '"></a></li>'); 

       }); 
       // $("#SelectedCrewMembersId").trigger("chosen:updated"); 
      }, 
      error: function (xhr, status, exp) { 
       alert(exp); 
      } 
     }); 

Ajax调用的作品,我也得到所需的值。

当我使用触发器(“选择:更新”);选择列表变空。评论时,我将值添加到列表中但未发布。

有没有人可以告诉我我在这里错过了什么。

感谢

回答

1

我终于找到了解决办法,所以希望这可以帮助别人:

  $.ajax({ 
      type: "POST", 
      url: "/Project/GetProjectCrewMemberIds", 
      traditional: true, 
      //dataType:'json', 
      data: { projectId: selectedProject }, 
      success: function (data) { 
       // $('ul.chosen-choices').empty(); 
       $.each(data, function (index, item) { 


        $("#SelectedCrewMembersId option[value='" + item.value + "']").prop("selected", true); 


       }); 
       $("#SelectedCrewMembersId").trigger("chosen:updated"); 

      }, 
      error: function (xhr, status, exp) { 
       alert(exp); 
      } 
     }); 

它只是在你的'更新所选择的值并调用.trigger(“选择:更新“)

因此,而不是更新所选的”ul.chosen-choices“元素,只需选择和调用.trigger(”selected:updated“)所需的元素;将照顾其余的。

+0

非常感谢您发布此信息。它今天帮了我很多! –