【发布时间】:2014-03-17 23:47:15
【问题描述】:
又一个“基于所选父选项动态更改选择选项”的问题。
我的选择值动态变化 - 但在我的 rails 渲染子选择后 - 我失去了选择的样式(jQuery Chosen 插件)并且我无法对这个新注入的元素进行操作。
这里是代码现在的位置 - 它经历了几十次迭代 -
$('#vendor_block').on('change', '#vendor_name', function(){
overlay.show();
var v = $(this).val();
vndr_json = {};
vndr_json["v"] = v;
$.ajax({
type : "GET",
url : "/purchaseorders/upd_vndr_locs",
data : vndr_json,
success: function(res) {
overlay.hide();
// console.log(typeof(res),res);
jQuery("#vndrAddrOpts").html(res);
}
});
$("#vendor_addresses").chosen(); // WHY DON'T YOU RENDER CHOSEN BOX?!
});
我在我的页面上看到了这个新的选择框 - 我想在它发生变化时触发一个事件,但 DOM 已经加载,所以它没有“看到”我猜测的这个元素。
另外 - Chosen 插件不会在元素上呈现。不知道为什么 - 可能是同样的原因。
我正在使用 jQuery 的 .on(),就像 SO 上的每篇文章都说我应该使用的那样。但它不会“重新加载”此父项中的元素(并且 'vendor_block' 是 'vendor_name' 和 'vendor_addresses' 的父 div)。
您可以在此处看到选择框中的区别:
任何帮助都会很棒?
更新:
在 HTML 前后添加:
<div id="vndrAddrOpts">
<select class="chzn-select vndrLocs span12" id="vendor_addresses" name="vendor_addresses"><option value="">Select Location</option></select>
</div>
这是原始的 HTML - 但是当 DOM 加载时,Chosen 会执行以下操作:
<div id="vendor_addresses_chzn" class="chzn-container chzn-container-single chzn-with-drop chzn-container-active" style="width: 100%; margin-bottom: 10px;" title=""><a href="javascript:void(0)" class="chzn-single" tabindex="-1"><span>Select Location</span><div><b></b></div></a><div class="chzn-drop"><div class="chzn-search"><input type="text" autocomplete="off"></div><ul class="chzn-results"><li id="vendor_addresses_chzn_o_0" class="active-result result-selected highlighted" style="">Select Location</li></ul></div></div>
这一切都很好 - 这是应该发生的。
这是注入选择框后的原始 HTML:
<div id="vndrAddrOpts">
<select class="chzn-select vndrLocs span12" id="vendor_addresses" name="vendor_addresses"><option value="">Select Location</option></select>
</div>
这里是渲染的盒子 - 没有选择的东西。
<select class="chzn-select vndrLocs span12" id="vendor_addresses" name="vendor_addresses"><option value="">Select Location</option><option value="532757b4963e6505bc000003">Honolulu</option>
<option value="532768d0963e6505bc000004">Waipahu</option></select>
【问题讨论】:
标签: javascript jquery html css ruby-on-rails