3

说明:当从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 仍然没有 pupulate,因此无法正常工作。

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

4

1 回答 1

1

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

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

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

               // Populate the options

              // Then set the value here
              $('.producto').val(3);
           }
      });
})
于 2013-07-16T00:00:26.550 回答