- ベストアンサー
jQueryテキストボックスの動作に関する質問
- 質問内容は、jQueryを使用してテキストボックスの動作を制御する方法に関するものです。
- 具体的には、テキストボックスをクリックした際に読み取り専用状態を解除し、フォーカスアウトした際に再度読み取り専用に設定するという動作についてです。
- Ajaxの設定はうまくできるが、jQueryの設定が正常に動作しないとのことです。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
回答の前に… >仕様:テキストボックスをクリックしたら、読み取り専用が解除される。 って、ほとんど意味を感じられないのですが… 単に、キー操作(タブによるフォーカス)を禁止するようなもので、わざわざ手間をかけてUIを悪くしているように感じます。 「編集対象がない間はreadonlyにしておきたい」という意味であれば、そもそも初期段階には「編集できそうなものがない」状態にしておく方が良いのではないでしょうか。 ってのは置いておいて。 No1様の回答の通り removeAttr('readonly'); でも attr("readonly", false); でも、同様の結果になるはずです。(実際の処理内容は少し違いますが) ご質問文を読むとajaxで内容を読込んでいるみたいですが、イベント設定のタイミングを間違っていることはないでしょうか? 読込み終了前にその対象要素にイベントを設定しようとしても(要素が存在しないので)、当然ながら設定はされません。 コールバックの中で設定するか。liveなどを用いて設定する必要があると思われますが? タイミングが正しければ、上記に設定でいけるはずと思います。 >フォーカスアウトした時に再度 readOnly=trueに設定 クリックと同様に、対象要素に blur(fn) を設定してあげればよろしいかと。
その他の回答 (1)
- kosukejlampnet
- ベストアンサー率44% (126/282)
$(this).attr('readonly','readonly'); →$(this).removeAttr('readonly');
補足
ご親切に有難う御座います。 removeAttr()の意味理解させて頂きました。 上記で試したのですが、うまく動作しません (function($){ alert("jquery"); $('input[type="text"]').click(function(){ とアラート設定をしたのですが、 functionに入ってきていないようです。 何度も申し訳ありませんが、宜しくお願い致します。
お礼
お礼が遅れてすみません。 有難う御座いました。 なんとかみなさんの意見で解決できました。