http://weble.org/2011/08/24/clear-the-disabled-form-with-jquery
のページのコメントの記載が該当しますかね?
そうですね、カンジンなことを書き忘れてました。読み込ませているjQueryは下記の通りです。
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
HTML非表示・使用不可メモ(Hishidama’s disabled/visibility/display Memo)
doctype宣言によってdisabledの厳密な書き方が変わったり、ブラウザによって解釈が変わる気がするので、自分はdisabledを有効にする場合は.attr('disabled', true)、無効にする場合は.removeAttr('disabled')と書くことが多いです。
追記
最近はprop()だそうで
jQueryで「jQuery(”input”).attr(”disabled”,true)」と書くのはもはや古い
タレコミによると、attr('disabled', 'disabled')のようにしていたのをtrue/falseで扱ったりするのがprop()ということらしいです。なので.prop('disabled', true)がナウい書き方。
まだまだ全然にわかコーダーなので晒すのが恥ずかしいですが、一部抜粋です
jQuery("input.related2").click(function() {
var tmp2 = jQuery("input[name=related2]:checked").val(); //ラジオボタンの状態取得
if (tmp2 == ""){ //ラジオボタンの中身がカラ(=その他)
jQuery("input.related_o2:disabled").removeAttr("disabled"); //テキストフォーム有効化
} else {
jQuery("input.related_o2:enabled").attr("disabled", "disabled").val("");//テキストフォーム無効化
}
});
ぶっちゃけ、ラジオボタンで「その他」を選択すると横にあるフォームが有効化されるっていうよくあるヤツです。「その他」のValue値を""としてオペレータさんには、その他のValue値を見せずに、その隣のTEXTのValue値を見せるという発想からこうしました。(PHPに渡して取得したラジオボタンとTEXTの結果を並べて書き出せば、その他と言う記述は無く、結果的にTEXTの内容だけが表示されるようにと言う意図です)
ここではクラス.related_o2のdisabled操作をしています、同様にクラスrelated_o1も同じ挙動。両方(1)では動かず(2)にすると動きました。なお、この2つはtype="text"です。しかし、それ以外のチェックボックスやラジオボタンでは(1)のままで問題なく動いてるんです。(おかげでgoogle先生に聞きまくってこれに気がつくのに3時間以上費やしました)
textだからってことなのでしょうか?まだ試していないのでわかりませんが・・・。
もちろん「jQueryで「jQuery(”input”).attr(”disabled”,true)」と書くのはもはや古い」の記事も読みました。関係あるような関係ないような、いまいちパッとしないんですよね。うまくいえませんが・・・。もっと勉強していけば理解できるようになるんでしょうか。
▽3
●
Lhankor_Mhy ●50ポイント ベストアンサー |
http://jsfiddle.net/PyJdw/
追記を元に再現してみましたが、動作しちゃいますね。実際のコードと何が違いますか?