Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > CSS
CSS Forum d'entraide sur l'utilisation des feuilles de style CSS. Avant de poster : Cours CSS, FAQ CSS, Galerie CSS
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/02/2012, 18h38   #1
Membre du Club
 
Inscription : avril 2002
Messages : 612
Détails du profil
Informations forums :
Inscription : avril 2002
Messages : 612
Points : 58
Points : 58
Par défaut champ input vide

salut
je cherche à crée un champ "input"(pour des Upload de fichier) , de façon que l'utilisateur peut appeler la fenêtre de parcoure de fichier en cliquant n'import ou dans le champs "input".
sa marche mais à un détail prêt et que le fichier choisit pour le Upload ne s'affiche pas sur le champ "Input" ( le champ input est toujours vide)?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
 
<div id="uploadBrowse1" class="uploadBrowse">
                              <div class="fileBox">
 
                                <div class="fileinputs">
                                 <input id="uploadFiles1" name="files" type="file" size="28" class="file hidden" >
                                   <div class="fakefile">
                                   <input readonly="" type="text">
 
                                   </div>
                                </div>
                               <a href="" class="btnBrowse">Browse...</a>
                              </div>
 
                        </div>


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
 
.fileBox{
	 float:left; 
	 width:608px; 
	 overflow:hidden;
	}
 
 
 .uploadBrowse{
	 position:relative; 
	 z-index:0; 
	 float:left; 
	 width:100%
	}
 
 
.btnBrowse{
float:left; 
font-size:12px; 
font-weight:bold;
background: -webkit-gradient(linear, 0 0, 0 bottom, from(#fdfefe), to(#dee9f0));
background: -moz-linear-gradient(#fdfefe, #dee9f0);background: linear-gradient(#fdfefe, #dee9f0);
-pie-background: linear-gradient(#fdfefe, #dee9f0); border: 1px solid #6c7c89;
 -webkit-border-radius: 5px; -moz-border-radius: 5px;padding:4px 10px; margin-left:3px; color:#000}
 
 .fileinputs{position:relative;}
 
 .file {
	 position: absolute;
	 top:0px; right:0; 
	 font-size:30px; 
	 width: 700px;
	 opacity: 0; 
	 -moz-opacity: 0; 
	 filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); 
	 z-index:999; 
	 cursor: pointer;
 
	}
 
 
.fakefile input {
float: left;
font-size: 11px;
color: black;
padding: 3px 10px;
width: 500px;
border: 1px solid #D1D1D1;
}
k_boy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/02/2012, 17h50   #2
Rédacteur
 
Avatar de jreaux62
 
Homme Jérôme Réaux
Webdesigner
Inscription : août 2008
Messages : 2 994
Détails du profil
Informations personnelles :
Nom : Homme Jérôme Réaux
Âge : 45
Localisation : France, Pas de Calais (Nord Pas de Calais)

Informations professionnelles :
Activité : Webdesigner
Secteur : Arts - Culture

Informations forums :
Inscription : août 2008
Messages : 2 994
Points : 5 787
Points : 5 787
Envoyer un message via Skype™ à jreaux62
Bonjour,
l'idée est intéressante...

En simplifiant le code, et avec un peu de jQuery pour remplir le "faux input" :
(javascript suffirait, mais l'écriture est bien plus simple en jQuery !)

Code css :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<style type="text/css">
.fileBox{
	z-index:0; 
	position:relative;
	width:500px; 
	overflow:hidden;
}
.hiddenfile {
	position: absolute;
	top:0; left:0; 
	width:500px; 
	height:30px;
	font-size: 1.0em;
	opacity: 0; -moz-opacity: 0; filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0); 
	z-index:999; 
	cursor: pointer;
}
input.fakefile {
	float: left;
	font-size: 1.0em;
	color: black;
	padding: 3px 10px;
	width: 363px;
	border: 1px solid #D1D1D1;
}
span.btnBrowse {
	float:left; 
	width: 90px;
	font-size:1.0em; 
	font-weight:bold;
	background: -webkit-gradient(linear, 0 0, 0 bottom, from(#fdfefe), to(#dee9f0));
	background: -moz-linear-gradient(#fdfefe, #dee9f0);background: linear-gradient(#fdfefe, #dee9f0);
	-pie-background: linear-gradient(#fdfefe, #dee9f0); border: 1px solid #6c7c89;
	-webkit-border-radius: 5px; -moz-border-radius: 5px;
	padding:4px 10px; 
	margin-left:3px; 
	color:#000
}
</style>
Code javascript :
1
2
3
4
5
6
7
8
9
10
<script src="http://code.jquery.com/jquery-1.7.1.min.js"></script>
<script type="text/javascript">
$(function() {
	$('.hiddenfile').change(function() {
		var valeur = $(this).val();
		valeur = valeur.replace(/[A-Z]:\\fakepath\\/,''); // sous IE, Safari,... : supprime le "faux chemin" (C:\fakepath\nom-du-fichier)
		$(this).next('.fakefile').val(valeur); // on remplit le "faux input" avec la valeur (= nom) du fichier choisi
	});
});
</script>

Code html :
1
2
3
4
5
6
7
8
9
10
<div class="fileBox">
	<input class="hiddenfile" name="file1" type="file" size="53" />
	<input class="fakefile" readonly="readonly" type="text" />
	<span class="btnBrowse">Fichier 1...</span>
</div>
<div class="fileBox">
	<input class="hiddenfile" name="file2" type="file" size="53" />
	<input class="fakefile" readonly="readonly" type="text" />
	<span class="btnBrowse">Fichier 2...</span>
</div>
Ca fonctionne aussi avec plusieurs fichiers à uploader...
__________________
"Ce qui se conçoit bien s'énonce clairement - Et les mots pour le dire arrivent aisément."
Nicolas Boileau-Despréaux, Homme de lettres français (1636-1711), principal théoricien de l'esthétique classique.
Site perso Mes tutos DVP : Gestion-Affichage de Nouvelles - Affichage en tableau HTML - Fonctions de redimensionnement d'images
jreaux62 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h05.


 
 
 
 
Partenaires

Hébergement Web