3流プログラマのメモ書き

元開発職→現社内SEの三流プログラマのIT技術メモ書き。 このメモが忘れっぽい自分とググってきた技術者の役に立ってくれれば幸いです。(jehupc.exblog.jpから移転中)

(JavaScript)Uniformを使うとselect要素の値がjQueryから操作できない

(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() );

}

}

}

}

);

}