changer la valeur d'un champ [JS] - HTML/CSS - Programmation
Marsh Posté le 09-07-2004 à 17:11:25
var fond = document.forminsert.fond.value ;
document.forminsert.fond.value = fond.replace(/\\/g,"\/" );
Marsh Posté le 10-07-2004 à 22:51:13
var fond = document.forminsert.fond;
fond.value = fond.value.replace(/\\/g,"\/" );
Marsh Posté le 10-07-2004 à 23:37:48
Ton erreur, c'est que tu veux faire pointer ta variable fond sur la value qui est une chaîne et non un objet.
fond = document.forminsert.fond.value;
Fond va juste être une copie de la value et non un pointeur dessus. Changer ensuite la valeur de fond ne change pas la value.
Il faut donc faire comme indiqué par lorill:
Le mieux serait quand même de donner un id à ton champs, car
document.forminsert.fond;
n'est pas une syntaxe recommendée.
Avec un id, tu écris :
document.getElementById( 'fond' );
Marsh Posté le 10-07-2004 à 23:55:10
Mara's dad a écrit : Il faut donc faire comme indiqué par lorill |
la solution a été donnée par JagStang, je me suis contenté de la réecrire a ma sauce
Marsh Posté le 11-07-2004 à 00:33:25
lorill a écrit : la solution a été donnée par JagStang, je me suis contenté de la réecrire a ma sauce |
Oui, la solution de JagStang fonctionne, mais il continue à pointer sur la value ce qui ne sert à rien. Si le but de la variable fond est de ne pas avoir à écrire le nom complet, la soluce de JagStang est inutile, autnat écrire dirrectement :
document.forminsert.fond.value = document.forminsert.fond.value.replace(/\\/g,"\/" );
De plus aucun de vous n'explique pourquoi la syntaxe de jeromejanson ne peux pas marcher !
Marsh Posté le 12-07-2004 à 08:49:38
oui
Marsh Posté le 12-07-2004 à 08:53:49
g essaye les 2 solutions et ca ne marche aps
je comprend pas
Marsh Posté le 12-07-2004 à 09:30:07
Pourrais tu être plus précis ? qu'est ce qui ne marche pas ?
Si tu essaies déjà de faire
Code :
|
est-ce que ca marche ? Le problème peut venir de ton replace, teste donc de manière unitaire.
Marsh Posté le 12-07-2004 à 09:34:04
swgreedo a écrit : Pourrais tu être plus précis ? qu'est ce qui ne marche pas ?
|
meme ca ca ne marche pas
Marsh Posté le 12-07-2004 à 09:35:53
as-tu un formulaire qui s'appelle forminsert ? un champ qui s'appelle fond ?
tu comprends ce que tu fais ?
poste le code complet de ta page stp
Marsh Posté le 12-07-2004 à 09:38:59
bien sur que j'ai le bon nom du formulaire et du champ
mais je me rend compte que je vous avait pas preciser un truc, c de ma faute, desole
le champ c'est un input type file
peut etre que vous allez me doire que c'est possible
Marsh Posté le 12-07-2004 à 09:50:59
Voilà une précision utile...
Je viens de tester, tu ne peux pas affecter manuellement la valeur d'un input file. Tu ne peux que la consulter.
Marsh Posté le 12-07-2004 à 09:53:53
dans ce cas ça change tout. quel est ton problème ? pourquoi veux-tu modifier ce champ, puisqu'ensuite il ne pointera plus vers un fichier valide ? plus de détail stp
Marsh Posté le 12-07-2004 à 09:56:44
ca devrait pas etre possible, sinon je peux faire une page qui va recuperer un fichier sur ton disque, et submitter le formulaire automatiquement... trop dangereux !
Marsh Posté le 12-07-2004 à 10:01:09
en fait je cherche a recuperer le chemin qui est rentre dans le champ
le pb est que le chemin renvoye par le input type file est avec des antislash, et suivant les navigateurs, certains n'aiment pas les "\"
c'est pour ca que je fais un replace qui me permet de transformer les "\" en "/"
et donc si il y a une modif a faire pour le chemin, je voudrais que le nouveau chemin vienne remplacer l'ancien dans le champ
j'espere avoir ete comprehensible
Marsh Posté le 12-07-2004 à 10:12:59
parce que c'est le navigateur qui mets le fichier et qui le gère, tu n'as pas a choisir pour lui quel séparateur de fichier lui convient.
c'est quoi ton VRAI besoin ? pourquoi tu veux jouer a ca ?
Marsh Posté le 12-07-2004 à 10:31:28
je veux pas uploader de fichier, je veux juste me servir du input type file pour recuperer le chemin d'un fichier
Marsh Posté le 12-07-2004 à 10:38:48
Sinon, je confirme, la modif de la value d'un input type="file" est interdite pour des raisons évidente de sécurité.
Marsh Posté le 12-07-2004 à 10:40:07
jeromejanson a écrit : je veux pas uploader de fichier, je veux juste me servir du input type file pour recuperer le chemin d'un fichier |
ah. ben dans ce cas, pourquoi modifier la valeur du champs ? tu peux stocker ta variable ailleurs, non ?
Marsh Posté le 12-07-2004 à 10:48:32
mon modifie-le à ce moment là
Marsh Posté le 12-07-2004 à 10:54:11
modifie le chemin au moment ou tu récupères cette valeur (avant de l'insérer dans la base)
c'est trop te demander un peu de code ?
Marsh Posté le 12-07-2004 à 10:56:47
c'est ce que je voulais faire au debut, mais je pensais qu'il y avait possibiliter de le faire en js
Marsh Posté le 12-07-2004 à 10:58:03
je vois pas pourquoi tu veux faire ça du côté client. si la gars a le JS désactivé ça ne fonctionnera pas. alors que sur le serveur au moins t'es certain que ça fonctionnera
Marsh Posté le 12-07-2004 à 11:05:28
ouai mais le pb c que suivant le navigateur des fois je recupere le chemin entier, et des fois j'ai juste le nom du fichier
Marsh Posté le 12-07-2004 à 15:54:56
Dans ce cas met la valeur modifiée de ton file dans un champ caché.
Marsh Posté le 12-07-2004 à 16:47:32
jeromejanson a écrit : ouai mais le pb c que suivant le navigateur des fois je recupere le chemin entier, et des fois j'ai juste le nom du fichier |
C'est le problème avec input type="file"
Selon la norme, le serveur ne devrait recevoir QUE le nom du fichier (à titre d'information).
Le navigateur n'est pas censé envoyer le chemin complet. C'est un trou de sécurité de le faire ( IE par exemple ) car ça renseigne le serveur sur l'architecture du système de fichier du client. Le serveur n'a absoluement pas besoin de connaitre pour faire un upload de fichier.
Bref, tu vas devoir faire autrement
Marsh Posté le 13-07-2004 à 10:39:47
c bon, traite autrement, mais c tres chiant ces differentes manieres de gerer les memes choses entre les navigateurs
Marsh Posté le 13-07-2004 à 13:21:55
Surtout ceux qui suivent pas les standards
Marsh Posté le 09-07-2004 à 15:57:45
j'ai une fonction en javascript qui me fait un traitement suivant ce qui a ete saisi dans un champ, et je voudrais que cette fonction renvoye dans le champ concerne la nouvelle valeur qui doit etre affiche, ca me donne un truc comme ca :
fond = document.forminsert.fond.value ;
var a = fond;
var b = a.replace(/\\/g,"\/" );
fond="toto";
la j'essaye donc juste d'afficher toto dans le champ de saise, mais ca ne marche pas
si vous pouvez m'aider en plus c'est la fin de semaine et j'ai un peu du mal
merci