Textarea et formulaire

Résolu/Fermé
Ulrich7 - 2 avril 2011 à 20:43
 Ulrich7 - 3 avril 2011 à 10:09
Bonjour, tout d'abord je tiens à préciser que je n'y connais rien en javascript, seulement HTML/PHP, mais que la solution à mon problème semble être un petit script en javascript. Donc je pose ma question :

Est-il possible de :
1) Dans un textarea, lui-même situé dans un formulaire, à chaque fois que l'utilisateur tape sur la touche "Entrée", ne pas faire de retour chariot mais valider le formulaire.
2) Lors du chargement de cette page, avec le formulaire et le textarea, faire en sorte que l'utilisateur puisse taper son texte directement, comme si il avait cliquer dans le textarea.

Merci d'avance pour votre aide.

3 réponses

Bilow Messages postés 1014 Date d'inscription samedi 21 août 2010 Statut Membre Dernière intervention 2 août 2015 117
2 avril 2011 à 21:10
Salut,

Tiens donc j'ai eu le même problème tout à l'heure =D
https://forums.commentcamarche.net/forum/affich-21459356-javascript-ie-ff-onkeypress

Mais puisque tu dis ne rien y connaitre en Javascript, je vais t'expliquer.

document.forme.elemName.onkeypress
Quand, dans le formulaire "forme", qui comprend le champ (texte ou textarea) elemName, on appuie sur une touche, alors ..

function(e){
var evt = window.event ? event : e;
createElement(evt);
}


On déclare une fonction, qui prend le paramètre 'e' pour Mozilla Firefox. A l'intérieur on déclare la variable 'evt' qui, si window.event (sous IE uniquement) existe, on la prend, sinon on utilise le paramètre donné pour Firefox. Ensuite on appelle la fonction finale. Toutefois dans le code en dessous de ce post j'ai mis quelque chose de plus simple, tant que cela fonctionne.

if((window.event && (!evt.keyCode || evt.keyCode==13) ) || (!window.event && (!evt.charCode || evt.charCode==0))) ..
Là, si tu ne connais pas le Javascript, alors je pense que ce n'est même pas la peine d'expliquer. En gros, il vérifie si c'est bien la touche "Enter".

Bug : Sous Mozilla, la touche Retour arrière aura le même effet que l'Entree, et aussi les flèches directionnelles. Je suis en train de chercher une solution...

Pour qu'il tape le texte directement, cela s'appelle le focus.
document.formulaire.textarea.focus()

Attention, un textarea où tu interdis les retours à la ligne revient à un <input type="text"> ;

Voici deux codes, à adapter aux tiens.

Code pour IE uniquement
<html>
<head>
<script type="text/javascript">
function verifier(){
if(event.keyCode == 13){ // Si "Entrée"
formulaire.submit(); // On envoi le formulaire
}
}
</script>
</head>
<body onload="document.formulaire.texte.focus()">
<form name="formulaire">
<textarea name="texte" onkeypress="verifier()"></textarea>
</form>
</body>
</html>


Code pour IE et FF
<html>
<head>
<script type="text/javascript">
function verifier(evt){
if( (event.keyCode && event.keyCode == 13) || (event.charCode || event.charCode ==0) ){ // Si "Entrée"
formulaire.submit(); // On envoi le formulaire
}
}
</script>
</head>
<body onload="document.formulaire.texte.focus()">
<form name="formulaire">
<textarea name="texte" onkeypress="verifier(event)"></textarea>
</form>
</body>
</html>

Voila ;-)
0
J'ai renoncé au textarea et plus qu'un seul problème se pose, que ton script ne semble pas vouloir régler :/ Pas moyen de sélectionner le champ text au chargement de la page.
0
J'ai trouvé ! un simple :

<script type="text/javascript">
window.onload = function() {
document.getElementById("NOM_DE_LINPUT").focus();
}
</script>

Merci pour votre aide.
0