J'ai un élément d'entrée de fichier
<input type="file" id="fileid">
Comment appeler une fonction JavaScript après avoir sélectionné un fichier dans la boîte de dialogue et l'avoir fermé?
jQuery("input#fileid").change(function () {
alert(jQuery(this).val())
});
<input type="file" id="fileid" >
le changement fonctionnera lorsque vous placerez le script sous l'entrée
<script type="text/javascript">
$(document).ready(function(){
$("#fileid").on('change',function(){
//do whatever you want
});
});
</script>
<script>
function example(){
alert('success');
}
</script>
<input type="file" id="field" onchange="example()" >
Essayez de déclarer en haut de votre fichier:
<script type="text/javascript">
// this allows jquery to be called along with scriptaculous and YUI without any conflicts
// the only difference is all jquery functions should be called with $jQ instead of $
// e.g. $jQ('#div_id').stuff instead of $('#div_id').stuff
$jQ = jQuery.noConflict();
</script>
puis:
<script language="javascript">
$jQ(document).ready(function (){
jQuery("input#fileid").change(function () {
alert(jQuery(this).val());
});
});
(vous pouvez mettre les deux dans la même balise <script>
, mais vous pouvez simplement déclarer la première partie de votre modèle parent et utiliser $ jQ chaque fois que vous utilisez jQuery dans vos modèles enfants, ce qui est très utile lorsque vous utilisez RoR par exemple)
comme mentionné dans les commentaires dans une autre réponse, cela ne se déclenche qu'après avoir sélectionné un fichier et cliqué sur Ouvrir. Si vous cliquez simplement sur "Choisir un fichier" et ne sélectionnez rien, cela ne fonctionnera pas
Ce code testé vous aide à:
$("body").on('change', 'input#fileid',function(){
alert($(this).val());});
Je pense que votre objectif est réalisable, mais, autant que je sache, aucun événement de ce type ne ressemble à cela.
Mais pour y parvenir, vous devez coopérer avec 3 événements, Je suppose que vous devez simplement connaître le nom du fichier . J'ai créé walk around here