Ce code devrait fonctionner dans IE (ne le testez même pas dans Firefox), mais ce n'est pas le cas. Ce que je veux, c'est afficher le nom du fichier joint. De l'aide?
<html>
<head>
<title>example</title>
<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript">
$(document).ready( function(){
$("#attach").after("<input id='fakeAttach' type='button' value='attach a file' />");
$("#fakeAttach").click(function() {
$("#attach").click();
$("#maxSize").after("<div id='temporary'><span id='attachedFile'></span><input id='remove' type='button' value='remove' /></div>");
$('#attach').change(function(){
$("#fakeAttach").attr("disabled","disabled");
$("#attachedFile").html($(this).val());
});
$("#remove").click(function(e){
e.preventDefault();
$("#attach").replaceWith($("#attach").clone());
$("#fakeAttach").attr("disabled","");
$("#temporary").remove();
});
})
});
</script>
</head>
<body>
<input id="attach" type="file" /><span id="maxSize">(less than 1MB)</span>
</body>
</html>
Réponses:
C'est aussi simple que d'écrire:
Quoi qu'il en soit, je suggère d'utiliser l'attribut nom ou ID pour sélectionner votre entrée. Et avec l'événement, cela devrait ressembler à ceci:
la source
Le moyen le plus simple consiste simplement à utiliser la ligne suivante de
jquery
, en utilisant cela, vous n'obtenez pas le/fakepath
non - sens, vous obtenez directement le fichier qui a été téléchargé:Quelques autres commandes utiles sont:
Pour obtenir le nom du fichier:
Pour obtenir le type du fichier:
Si je devais télécharger un PNG, il reviendrait
image/png
Pour obtenir la taille (en octets) du fichier:
De plus, vous n'êtes pas obligé d'utiliser ces commandes
on('change'
, vous pouvez obtenir les valeurs à tout moment, par exemple, vous pouvez avoir un fichier téléchargé et lorsque l'utilisateur cliqueupload
, vous utilisez simplement les commandes que j'ai répertoriées.la source
Ce code ne s'affichera pas
C:\fakepath\
avant le nom du fichier dans Google Chrome en cas d'utilisation.val()
.la source
la source
J'avais utilisé la suite qui fonctionnait correctement.
la source
la source
Ajoutez un bouton de réinitialisation caché:
Cliquez sur le bouton de réinitialisation pour effacer l'entrée.
la source
la source