1

dropdownすべての値を読み込んだ後に値を設定する必要があります。最初の(District) 値は 2 番目の(Councils)dropdownの値をロードし、 を呼び出して Councils の値を選択しますが、完全にロードされた後にのみ設定できます。dropdownJSonIDdropdown

$("#PostalCode").keyup(function () {
    loadPTPostalCode();
});

$("#PostalCodeExtension").keyup(function () {
    loadPTPostalCode();
});

function loadPTPostalCode()
{
    if ($("#PostalCode").val() >= 1000) {
       $.ajax({
            url: '/Address/GetPTPostalCode',
            type: "POST",
            dataType: "json",
            data: { postalCode: $("#PostalCode").val(), postalCodeExtension: $("#PostalCodeExtension").val() },
            success: function (data) {
                 //Set the Distict value and fire the load of the Councils Dropdown
                $("#districtDropdown").val(data.PTCouncil.PTDistrict.Id).change(function () {
                 // I tried to define the Council value after the load of his dropdown changes but no luck
                    $("#councilDropdown").val(data.PTCouncil.Id);
                });
            },
            error: function (XMLHttpRequest, textStatus, errorThrown) {
                //alert(textStatus)
            }
        });
    }
}

編集:

District ドロップダウンに関連付けられたカスケードもあります。

$("#districtDropdown").cascade({
    url: "/Address/ListCouncilByDistrict",
    paramName: "districtId",
    firstOption: 'Selecione o Concelho...',
    childSelect: $("#councilDropdown")
});
4

2 に答える 2

0

評議会のドロップダウンで値を設定する必要があるのは、値が読み込まれた後でのみです。これは、おそらく別のAjax呼び出しを介して行われます。地区の値の変更時に評議会の値をロードしている別のjava-scriptコードがあると想定しています(おそらく地区のドロップダウンの変更ハンドラーで)。したがって、その関数で評議会の値を設定する必要があります。アウトラインは次のようになります

success: function (data) {
  //Set the Distict value
  $("#districtDropdown").val(data.PTCouncil.PTDistrict.Id);
  // store the council id in temp storage (currently using DOM element)
  $("#councilDropdown")[0]["temp_council_id"] = data.PTCouncil.Id;
  // fire loading of council drop-down
  $("#districtDropdown").change(); // this is assuming that change handler has the
                                   // relevant code. If not then invoke that code.
}

ここで、カウンシルのドロップダウンをロードするコードに、一時ストレージからカウンシルIDを設定するコードを追加します

$("#districtDropdown").change(function() {
   // code to load council drop-down
   ....

   // set the selected council id (if any)
   var councilId = $("#councilDropdown")[0]["temp_council_id"];
   if (councilId) {
       $("#councilDropdown").val(councilId);
       $("#councilDropdown")[0]["temp_council_id"] = null; // clear temp storage
   }
});
于 2013-01-21T12:15:51.880 に答える
0

あなたの質問を完全に理解しているかどうかはわかりませんが、これを試してください:

 success: function (data) {
                 //Set the Distict value and fire the load of the Councils Dropdown
                $("#districtDropdown").val(data.PTCouncil.PTDistrict.Id).change(function () {
                 // I tried to define the Council value after the load of his dropdown changes but no luck
                    $("#councilDropdown").val(data.PTCouncil.Id);
                }).change();
            }
于 2013-01-21T12:03:12.437 に答える