2011-07-13 7 views
2

私のコードでは、$("#date")はjquery datepickerが付いたテキストフィールドです。以下のコードでは、私は日付を選択すると、放火犯はthis.val is not a function

$("#date").change(function(){ 
    var mydate = this.val(); 
    alert(mydate); 
}); 

このエラーを示します。しかし、私は$("#date").val()this.val()を変更すると、それは完璧に動作し、選択した日付を警告します。誰でもthis.val()が動作しない理由を指摘できますか?

EDIT
申し訳ありませんが、これは誤字です。私は実際にあなたが()).val $(この)(あるべき

$(this).val(); 
+0

を試してみてください。 this.valはどう?私は誤解を招く可能性がありますが、この文脈では、セレクタではなくイベントを参照していると思います。 – thescientist

+0

@ Sparky DOM要素オブジェクトとjQueryオブジェクトの違いを知る必要があります。 –

+0

@ thescientist:いいえ、「this」はオブジェクトを参照します。フィールドの価値を古い学校のJSのやり方にしたいのであれば、彼は 'this.value'を使うでしょう。 – Shef

答えて

8

thisそれはDOMオブジェクトだ、jQueryオブジェクトではありません。 $(this)という名前でアドレスしてください。

$("#date").change(function(){ 
    var mydate = $(this).val(); 
    alert(mydate); 
}); 
8

)、)(this.val使用されていない$ this.val(;あなたのイベント関数で

$("#date").change(function(){ 
    var mydate = $(this).val(); 
    alert(mydate); 
}); 
2

$ this.valを書くべき

2

this実際のDOM要素であり、そしてval()はjQueryのメソッドである - 次の2つを組み合わせることはできません。 $(this).val()を使用してください。

+0

説明に感謝:) – Sparky

2

は、あなたのコード内で$ this.valを持っているこの

var mydate = $(this).val(); 
関連する問題