0

我有一个名为 #change_product 的表单,我在其中通过 jquery 使用此代码添加一个选择:

var strCategory = '<div class="rowEl"><label>Label<span>*</span></label><div class="select"><select name="product_category" class="mandatory"><option value=""></option>'; 

$.each(product.categoryCdVersion, function(category, cdVersion){
    strCategory += '<option value="'+cdVersion+'">'+category+'</option>';
});
strFascia += '</select></div>';           
$("#product_options").prepend(strCategory);

当使用 product_category 选择时,我需要更改我在表单中放入的名为 cdVersion 的输入类型。

 <form id="change_product" class="usersetting change_product" action="/"> 
        ...
        <input type="hidden" name="cdVersion" value=""/>
        ...

 </form>

这就是我所做的

jQuery(function ($) {
    $(function() {  

        ...
        $('#change_product').find('select[name="product_category"]').change(function() {
            var cdVersionFromCategory = this.options[this.selectedIndex].value;
            $("#change_product").find('input[name="product_cdVersione"]').val(cdVersionFromCategory);
        });
        ...

     });            
});

但是我总是在 cdVersion 中得到选项列表的第一个值,而我在 change 函数中用 console.log 记录的任何内容都看不到,所以肯定有错误,你怎么看?是因为select是在加载文档后创建的吗?谢谢。

4

1 回答 1

0

我假设 select 是一个多选列表?尝试:

$(function() {
    $('#change_product').find('select[name="product_category"]').change(function(event) {
        var selectedOption = $(event.target).find("option:selected");
        // do stuff with options
    });
});
于 2013-10-15T11:22:58.130 回答