2012-03-20 8 views
0

のテキストボックスが変更されたかどうかを確認する方法は分かりますが、テキストボックスが変更された場合はどうなりますか? アイデアページ上のテキストボックスが変更された場合は、

$("input[type=text]").change(function() { 

    // put your code here 

}); 

EDIT:

あなたはjQueryに新しく追加されたか、それを知らない場合、それはJavaScriptフレームワークですjQueryを使って

+0

試しましたか? – talnicolas

+0

jqueryを使って試してみましたか? –

+0

foreachループ – Brian

答えて

2

change()の機能については、hereをクリックしてください。

+0

.change()は、右クリックでテキストを挿入している場合も認識しますか? –

+0

@EvilP私はそう信じています。私はちょうどここでそれをテストし、それが働いた:http://jsfiddle.net/uBqx7/ –

+3

OPはjQueryまたはjQueryとタグを言及していないので、少なくとも、jQueryサイトへのリンクを提供し、うまくいけば非jQueryを提供する必要があります回答。 –

0

jQueryを使用できます。

テキストボックスにクラスを指定します。 class="onchange"はその後、いくつかのjQuery

$(function(){ 
    $('.onchange').change(function(){ 
     // your code in here. 
    }); 
}); 

にその方法を追加し、クラスonchangeを持つ任意のテキストボックスには、jQueryのchangeイベントを発生させます。

2

次のコードは、 "text"と等しいタイプのページのすべての入力タグにonchangeイベントリスナーを追加します。

var textboxes = document.getElementsByTagName("input"); 
for(var i = 0; i < textboxes.length; i++) { 
    if(textboxes[i].type == "text") { 
     textboxes[i].type.onchange = function() {alert("changed");}; 
    } 
} 
+0

jQueryを使用してくれてありがとう、ありがとう。 –

+1

私は 'onclick'ではなく' onchange'を使うことをお勧めします。なぜなら 'onclick'は何らかの変更が行われる前に警告を出し、changeイベントがclickイベントに続いて行われたかどうかをチェックしません。 –

+0

sry、私の間違い;私は間違いなくonclick – Tom

0

ループオーバーdocument.getElemenetsByTagName("input")。各要素について、タイプ== "text"であることを確認し、そうであればイベントリスナーを添付します。

jQueryのはラインでこれを行います。$("input[type=text]").on("change", function() { ... })

あなたは、ロード時間後に動的に作成されたテキストボックスのためにこれを行う一般$("input[type=text]").live("change", function() { ... })

2

を使用する場合は、1つのdivの中で、すべてのテキストボックスを持っています。 event bubblingを使用します。

// Add an event handler on your whole div 
document.getElementById('div-with-your-checkboxes').onchange = function(e) { 
    // Cross browser check 
    var evt = e || window.event 
    // Get the element that triggered the event 
    var target = evt.target || evt.srcElement 
    // Check if it is an INPUT element 
    if (target.tagName === 'INPUT') { 
     // Your code in here. 
    } 
} 

この方法で、あなたのdiv内のすべてonchangeのイベントをチェックする唯一のイベントを追加します。ちょうど簡単なチェックと完了です。

これは、すべてのinput要素に対してイベントハンドラを追加するよりも効率的です。 jQueryの方法は次のようになります::

PSあなたが見ることができるように

$('#div-with-your-checkboxes').change(function(e) { 
    if ($(e.target).tagName === 'INPUT') { 
     // Your code in here. 
    } 
}) 

、jQueryのは本当に:-)この単純なタスクのために必要とされていません。

+0

のID「div'を使用するすべての楽しみがかかります.- – Raynos

+0

例のために、一般的です!しかし、私はあなたのために編集:) –

関連する問題