在调用方法更改()无效后将值设置为下拉列表

时间:2013-07-15 23:53:32

标签: jquery drop-down-menu onchange

说明:从 alcanceMarca 中选择一个选项时,根据alcanceMarca中的值填充 alcanceProducto ,然后我需要设置(选择) )值为alcanceProducto。

问题:问题是没有设置(选择)alcanceProducto的值因为设置值时,方法是change()。还没完。

猜测我需要在完成change()之后找到设置alcanceProducto值的方法。

我的代码

enlace = 5; //for example
idMps = 3;

$('#editMPS_structure .alcanceMarca').find('select').val(enlace).change();
console.log($('#editMPS_structure .alcanceProducto').find('select').find('option'));
$('#editMPS_structure .alcanceProducto').find('select').val(idMps);

$('.marca').on('change', function() {
    //Populate select select.marca from database using jquery ajax, this part works perfectly   
})

$('#editMPS_structure .alcanceMarca')。find('select')等于 .marca

例如:

我有这个默认选择:

<select class="marca">
    <option value="0">Seleccione</option>
    <option value="1">Option1</option>
</select>

<select class="producto">
    <option value="0">Seleccione</option>
</select>

根据 .marca 中的选项1填充 producto

<select class="marca">
    <option value="0">Seleccione</option>
    <option value="1">Option1</option>
</select>

<select class="producto">
    <option value="0">Seleccione</option>
    <option value="1">OptionProd1</option>
    <option value="2">OptionProd2</option>
    <option value="3">OptionProd3</option>
</select>

我需要设置value = 3,但不能正常工作,因为下拉.alcanceProducto仍然没有瞳孔。

我意识到没有加载,因为方法调用change()和设置值之间的控制台上显示的内容只显示选项0,并且不显示您应该上传的3个选项。

1 个答案:

答案 0 :(得分:1)

因为您正在填充ajax请求中的选项。

您需要在ajax请求的成功回调中设置值,以便在您设置值时可以使用这些选项。

$('.marca').on('change', function() {
      $.ajax({
           ....
           ....
           success : function(data) {

               // Populate the options

              // Then set the value here
              $('.producto').val(3);
           }
      });
})