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 に基づいて製品を入力した

<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>

そして、値を 3 に設定する必要がありますが、ドロップダウン .alcanceProducto がまだ生成されていないため、機能しません。

メソッド呼び出し change() と set value の間のコンソールに表示されるものは、オプション 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 に答える