Próbuję objąć jQuery w 100% za pomocą prostego i eleganckiego interfejsu API, ale mam do czynienia z niespójnością między API a prostym kodem HTML, którego nie mogę całkiem rozwiązać.Metoda zmiany jQuery na typie wejściowym = "plik"
Mam skrypt AJAX file uploader (który działa poprawnie), który chcę uruchomić przy każdej zmianie wartości wejściowej pliku. Oto mój kod roboczych:
<input type="file" size="45" name="imageFile" id="imageFile" onchange="uploadFile()">
Kiedy przekształcić zdarzenie onchange
do realizacji jQuery:
$('#imageFile').change(function(){ uploadFile(); });
wynik nie jest taki sam. Z atrybutem onchange
funkcja uploadFile()
jest wywoływana w dowolnym momencie, gdy wartość zostanie zmieniona zgodnie z oczekiwaniami. Ale z obsługą zdarzeń jQuery API .change()
zdarzenie uruchamia się tylko przy pierwszej zmianie wartości. Wszelkie zmiany wartości po tym są ignorowane. Wydaje mi się to niewłaściwe, ale z pewnością nie może to być niedopatrzenie jQuery, prawda?
Czy ktoś napotkał ten sam problem i czy masz obejście lub rozwiązanie problemu innego niż opisane powyżej?
Czy używasz IE przez przypadek? – spig
Generalnie unikam IE jak ognia. LOL Ale poważnie rozwijam się w Fireboksie, dzięki czemu mogę korzystać z Firebuga i jego niesamowitości, a następnie testować w IE, Chrome i Safari. Dlaczego pytasz? Metoda .live() (odpowiedź poniżej) rozwiązała dla mnie ten problem. – gurun8
@ gurun8 Dlaczego parametr uploadFile() nie ma jakiegoś parametru? Chcę wywołać metodę ASP.NET MVC w ten sposób, ale javascript powinien wysłać plik, który chce przesłać jako parametr –