ユーザーがプラットフォーム(オペレーティングシステム)を変更すると、ajax呼び出しが呼び出され、使用可能なモデルがjson形式で取得されるフォームがあります。私はAJAX呼び出しを呼び出すことができますし、データを正しくフォーマットし直していますが、モデル値を新しい値(json値のペア)で更新することはできません。 .next()、.find()などの項目をDOMにトラバースする必要があるので、いくつかの行が動的に追加されるためIDがありません。ここでjQuery、json、drop down oh my
は形式です:
ここ<div class="field inline">
<label class="frmFlds_labels">Platform</label>
<select name="platform" onChange="updateModels(this,18);" class="platform">
<option value=""></option>
<option value="IBM" selected="selected">AIX</option>
<option value="HP">HP-UX</option>
<option value="LINUX">Linux</option>
<option value="SUN">Solaris</option>
<option value="WINTEL">Wintel</option>
<option value="Other">Other</option>
</select>
</div>
<div class="field inline" platform="IBM">
<label class="frmFlds_labels">Model</label>
<select name="model" class="model">
<option value=""></option>
<option value="LPAR on p550">LPAR on p550</option>
<option value="LPAR on p561">LPAR on p561</option>
<option value="LPAR on p570">LPAR on p570</option>
</select>
はJSコード:トラバースを想定し
function updateModels(i,id){
var pltfrm = $(i).val();
var firstOption = $(this);
$.getJSON("index.cfm?do=misc.getModels&platform=" + pltfrm,
function(j){
var options = '';
for (var i = 0; i < j.length; i++){
options += '<option value="' + j[i].optionValue + '">' + j[i].optionDisplay + '</option>';
}
firstOption.next().children('.model').html(options);
});
}
問題がクライアントにある場合は、サーバーコードではなくクライアントコードを表示します。 –
どこがこの関数のイベントハンドラですか? –
.next()または.find()を使用してコードの形式を見ることができるように、サーバーコードを公開しました。変更のためのデータ配信の問題はありませんLOLサーバーコードは、コードがページ上でどのようにレイアウトされているかを理解するのに役立ちます。投稿したコードは1〜100回ループしています。非常に「次の」ドロップダウンオプションを特定するための助けが必要です。私はこれを行っていたブログでいくつかのコードの例を見つけましたが、DIVタグを使用している間はテーブル行を使用していました。 – HPWD