ユーザーが最初のドロップダウン (dropdown1) で何かを選択したことに基づいて、ドロップダウン (dropdown2) に入力します。ドロップダウン 1 にはパートナーのリストが含まれ、ドロップダウン 2 にはパートナーに属する人物のリストが入力されます。これは以下の私のjqueryコードです(動作します):
$("select[name='dropdown1']").change(function() {
$.ajax({
type: "POST",
url: "ajax/getPeoplebyPartner",
data: "partnerId="+$("select[name='dropdown1']").val(),
dataType: 'json',
success: function(data){
$("select[name='dropdown2']").empty();
$("select[name='dropdown2']").append($("<option />").val("").text("select the person").attr('selected','selected').attr('disabled','disabled').attr('style','display:none;'));
$.each(data, function() { //Filling each option
$("select[name='dropdown2']").append($("<option />").val(this.id).text(this.name));
});
}
});
});
$("select[name='dropdown1']").change();
ただし、ユーザーがフォームを送信してもどこかにエラーがあった場合、dropdown2 は再入力されますが、ユーザーが行った可能性のあるオプションは失われます。私はそれを修正したい。
この部分を変更するのが最善の方法だと思います:
$("select[name='dropdown2']").append($("<option />").val(this.id).text(this.name));
の中へ:
if(this.id == WHAT THE USER HAD SELECTED BEFORE THE FORM WAS SUBMITTED) $("select[name='dropdown2']").append($("<option />").val(this.id).text(this.name).attr('selected','selected'));
else $("select[name='dropdown2']").append($("<option />").val(this.id).text(this.name));
フォームを送信する前にユーザーが選択したものを見つけるにはどうすればよいですか?
前もって感謝します!