Ответ 1
Демо: http://jsfiddle.net/NbGBj/
$("document").ready(function(){
$("#upload").change(function() {
alert('changed!');
});
});
Код:
<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
i.e.
$('#fileupload1').live('change', function(){
alert("hola");
});
Вот jsFiddle этой работы против jQuery 1.4.4
Этот jsfiddle отлично работает для меня.
$(document).delegate(':file', 'change', function() {
console.log(this);
});
Примечание..delegate() - это самый быстрый способ привязки событий для jQuery < 1.7: методы привязки событий
Попробуйте использовать это:
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
});
Вы также можете использовать этот