2016-10-21 8 views
1

私がしたいことは、ユーザーが自分のアプリケーションの入力を終えたときにその入力値が入力されたメッセージを表示したときのようなものです。多くの入力がありますので、 IDを入力すれば、どうすればこの問題を解決できますか?私は$(this).valueを選択されてやろうとしているが、私は唯一の「undefinied」を取得することは、ここで私はあなたのコードが動作していないIDなしで入力値を取得する方法

var timer = null; 
 
$(document).ready(function() { 
 
    $('input').keydown(function (event) { 
 
     clearTimeout(timer); 
 
     timer = setTimeout(validarType, 1000) 
 
    }); 
 

 

 
}); 
 
function validarType() { 
 
    var xd = $(this).value; 
 
    alert(xd); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="text"/>

+0

があった場合、あなたが入力を取得するために、親/子関係を使用することができ、私はあなたのDOMの残りの部分を見てみましょうがページ上に1つ以上の入力があります。 –

+0

なぜあなたのバリデータメソッドに値を渡さないと、その値がより再利用可能になります。タイムアウトで無名関数を使用して、値でバリデータメソッドを呼び出します。 – ste2425

答えて

4

何をしようとしているのコード例であります2つの理由で

thisは、ハンドラが呼び出されたときと同じではありません。これはタイムアウト内からこの関数を呼び出すためです。

$(this)はjQueryオブジェクトである - 何value属性

正しいコードはありません。

var timer = null; 
$(document).ready(function() { 
    $('input').keydown(function (event) { 
     clearTimeout(timer); 
     timer = setTimeout(validarType.bind(this), 1000) //bind the existing context 
    }); 
}); 
function validarType() { 
    var xd = this.value; //this is now a regular DOM element - and has a value attribute 
    alert(xd); 
} 
+0

ありがとう私の友人! –

関連する問題