私はこれを100回前に行ったことがありますが、この1つの例ではそれを機能させることができません。
フォームがあります。クライアントのドロップダウンから選択すると、フォームの残りのフィールドが更新されます。
シンプル。
ajax呼び出しを使用して、フォームデータをjsonオブジェクトとして返し、次のjqueryを使用して画面上のフォームを更新します。フィールドはname
、出力定義(以下のようにk
)と一致するように設定されます。
$.each(out, function(k,v){
if($('form input[name="'+k+'"]').attr('type') == 'text'){
$('form input[name="'+k+'"]').val(v);
}else if($('form input[name="'+k+'"]').attr('type') == 'hidden'){
$('form input[name="'+k+'"]').val(v);
$('form .'+k).text(v);
}else if($('form input[name="'+k+'"]').attr('type') == 'checkbox'){
if(v == '1') {
$('form input[name="'+k+'"]').attr('checked', true);
}else{
$('form input[name="'+k+'"]').attr('checked', false);
}
}else
$('form select[name="'+k+'"] option[value="'+v+'"]').attr('selected', true);
$('form input[name="old_client_name"]').val(out.client_name);
});
inspect要素を使用すると、1つの選択フィールドで正しいオプションに値が指定されていることが実際にわかりselected="selected"
ますが、ユーザーのビューではこれを反映するように選択ボックスが更新されていないため、ユーザーはこれを選択済みとして表示できません。 、およびフォームの処理では、値が設定されていないように動作します。
私はjq1.9.1を使用していますが、この特定のプロジェクトでこれにアップグレードしたのはつい最近のことです。
助言がありますか?