コードは次のとおりです。
<input ID="fileUpload1" runat="server" type="file"
以下が正常に機能します。
<input onchange="javascript:alert('hola');" ID="fileUpload1" runat="server" type="file"
JQueryを使用してこの結果を取得したいのですが、うまくいきません。
$('#fileUpload1').change(function (e) {
alert("hola");
});
私は何かが欠けていますか? (編集:はい、*。jsファイルのインクルードを見逃しました。)
デモ: http://jsfiddle.net/NbGBj/
$("document").ready(function(){
$("#upload").change(function() {
alert('changed!');
});
});
または:
$('input[type=file]').change(function () {
alert("hola");
});
具体的には:$('input[type=file]#fileUpload1').change(...
正常に動作するはずです。$(document).ready()
呼び出しでコードをラップしていますか?それを使用しない場合、またはlive
を使用する場合.
$('#fileupload1').live('change', function(){
alert("hola");
});
これが jsFiddle で、jQuery 1.4.4に対して動作しています。
これは jsfiddle でうまくいきます。
$(document).delegate(':file', 'change', function() {
console.log(this);
});
注:.delegate()は、jQuery <1.7の最速のイベントバインディングメソッドです。 event-binding methods
これを使用してみてください:
HTML:
<input ID="fileUpload1" runat="server" type="file">
JavaScript:
$("#fileUpload1").on('change',function() {
alert('Works!!');
});
$('#fileupload').bind('change', function (e) { //dynamic property binding
alert('hello');// message you want to display
});
これも使えます