在select2上更改data-attribute

时间:2015-07-09 14:42:29

标签: jquery-select2 jquery-select2-3

我使用select2 3.5.2处理较旧的遗留系统。

它使用旧的隐藏字段方法,它目前传递的数据如下:

<input class="select2" data-url="/mapscrSearch/filterdata" data-parent="3" data-model="VMapscreenCategories" data-tags="1" data-searchterm="name" data-showitem="name" data-hiddenfield=".opcode_filters" data-allowuserinput="" data-enabled="1" type="text" value="" name="opcode_id" id="opcode_id" tabindex="-1" style="display: none;">

现在,我有一个小的jquery函数,可以动态更改数据父级,并根据父级ID提取正确的数据;如果我手动设置data-parent,但是当通过jquery更改data-parent时,它不会更新select2组件。

例如,我目前有:

$(document).ready(function(){
   var opCodeFamily = $('#category_parent');
   var opCodeParentId = $('#opcode_parent_id');
   var opCodeDataUrl = $('#opcode_id');

   // Set default
  $(opCodeParentId).val($(opCodeFamily).val());
  $(opCodeDataUrl).attr('data-parent', opCodeParentId.val());

  // Change the value from parent select
  $(opCodeFamily).change(function(){
  $(opCodeParentId).val($(opCodeFamily).val());
  $(opCodeDataUrl).attr('data-parent', opCodeParentId.val()).trigger("change");
       console.log('data-parent set to: ' + opCodeParentId.val() + ', select2 passing: ' + opCodeDataUrl.data('parent')); 
  }).trigger("change")

});

我可以看到它在控制台和检查器中更改数据父级,但是select2仍然传递原始值。我看过触发器,但这似乎没有做任何事情。有什么我想念的吗?

0 个答案:

没有答案