.change()函数不起作用

时间:2013-10-15 11:08:23

标签: jquery onchange

我有一个名为#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中选项列表的第一个值,我看不到任何我在更改函数中使用console.log登录的内容,所以一定有错误,你怎么看?是因为在加载文档后创建了选择吗?感谢。

1 个答案:

答案 0 :(得分:0)

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

$(function() {
    $('#change_product').find('select[name="product_category"]').change(function(event) {
        var selectedOption = $(event.target).find("option:selected");
        // do stuff with options
    });
});