(Ajax,PHP)Ajaxを使って入力フォームに戻ったときに値を再セットするで入力フォームに戻ったときに値を再設定する方法を書きました。
しかし、フォームのデザインを良くするために、Uniformを使うと、select タグの表記が変わりません。
(Uniformについては、(HTML)Uniform 入力フォームの見栄えを良くするスクリプト+CSS 参照)
Firebugで見ると、実際のselectタグは変わってるようなんですが、Uniformでタップして表示している部分が変更されないようです。
(Uniformはselectタグの実体は非表示にし、selectedが付いているテキストを span タグ内で表示するような仕様になっています。)
ということで、値をフォームに再セットするときに、Uniform側のテキストも変更するようにするため、下記のようにコードを直してみました。
(uniformのid名は,既存のid名の前に、"uniform-" という文字列をつけるだけという仕様を使ってます。また、各タグのid名とnameの値は同じにしています。)
function SetValue(){$.getJSON(
"GetInputData", //アクセス先
function(data,status){
if ( data ){
for (var key in data) {
$("*[name=" + key + "]").val(data[key]) ;
//selectタグなら
if ( $("*[name=" + key + "]")[0].nodeName == "SELECT" ){
//uniform
$("#uniform-" + key).children("span").html( $("*[name=" + key + "]").children(':selected').text() );
}
}
}
}
);
}