2011-01-11 34 views
0

クリックしたときにテキストボックスを有効にしたいと思います。ただし、テキストボックスをクリックすると何も起こりません。私はそれがjQueryセレクタの問題だと信じています。なぜこれは機能しないのですか?jQueryセレクタ - 入力フィールド

<script> 
    $(document).ready(function() { 
     $(':input').click(function() { 
      $(this).removeAttr('disabled'); 
     }); 
    }); 
</script> 
<input type="text" value="123" disabled="disabled" /> 

注:テキストフィールドを選択するために$( 'input')と$( ':input')の両方を試しました。どちらもうまくいかなかった。

+1

関数が呼び出されているかどうか知っていますか?最初に呼び出されているかどうかを知るために関数に警告文を入れてみてください。 – codersarepeople

+1

これは[無効化されたフォームフィールドの無効属性を削除する](http://stackoverflow.com/questions/921161/remove-disabled-attribute-onclick-of-disabled-form-field)と重複しています。短いストーリー、無効な要素は 'click'イベントを発生させません。 –

+0

好奇心が強いですが、そのような動作のユースケースについて説明できますか? – cesarsalazar

答えて

9

無効な入力はイベントを発生させません。無効から読み取り専用に変更してみてください。

+0

ありがとうございます!今は素晴らしい作品です。 – Nathan

+0

喜んで聞いてください – leeny

+0

これはtype = "text"とtype = "password"の場合にのみ有効です。 – Wex

0

それはあなたが使用しているセレクタとは何の関係もありませんが、input要素が無効になっていることから、むしろ、ので、入力のためのイベントは発生しません - 参照:http://www.jsfiddle.net/DvZDh/

<input type="text" value="123" disabled="disabled" /> 
<input type="text" value="123" /> 

コード作品2番目のinput要素には、最初の要素は含まれません。単純な解決策は、恐らくCSSを使用して無効状態をシミュレートすることです。

+0

リンクありがとうございました。それは素晴らしいウェブサイトです。 – Nathan

関連する問題