Ca ne marche pas pour plusieurs raisons :
1. "Thisform" n'est pas défini.
Il faut avoir par exemple <form name="thisform" ...
ou bien passer le nom de la forme courante en paramètre par
onClick=blogblog(this) et récupérer ce paramètre dans la fonction qui serait défini par function blogblog(Thisform).
2. Javascript est un peu capricieux avec les espaces. Pour certains navigateurs, ton code contient un peu trop d'espaces en plusieurs endroits. En règle général, avec javascript, il vaut mieux éviter les espaces avant et après "=", "+", "<", ">", etc. , même si c'est moins lisible et moins beau.
3. Il est recommandé de choisir des noms qui ne sont pas des mots réservés.
Ce n'est pas très judicieux de choisir d'appeler ses champs "input" et "cache", d'appeler le bouton "submit", d'appeler le formulaire "thisform". Il vaut mieux donner des noms qui éclairent sur le contenu des objets, par exemple "prenom", "var_temp", "bt_envoi", "f_saisie_etat_civil".
4. Il est préférable de n'avoir qu'un seul "submit". Dans le code il y en a deux puisqu'il y a à la fois le bouton de type "submit", et Thisform.submit();. Si l'on utilise Thiform.submit(), alors il vaut mieux avoir un bouton de type "button".
5. Il me semble que certains navigateurs préfèrent voir onClick=blogblog() plutôt que onClick="blogblog".
Je suis arrivé à quelque chose qui marche un peu mieux :
<html>
<head>
<Script language="javascript">
function blogblog(Thisform) {
Thisform.cache.value = "blog " + Thisform.input.value;
Thisform.input.value = Thisform.cache.value;
Thisform.submit();
} </script>
</head>
<body>
<form method="get" name="la_forme"> <input name="input" type="text" class="sideboxtitle" size="20"> <br>
<input name="cache" type="hidden" id="cache">
<input type="button" name="go" value="GO" onClick=blogblog(la_forme)> </form>
</body>
</html> |
Pour le test, j'ai mis "get" au lieu de post", mais cela devrait passer avec "post" aussi. Un faux bug est causé par l'espace dans "blog" + Thisform.input.value; . Le navigateur le remplace par un signe "+", ce qui est l'un des moyens standards pour éviter un espace dans une url un autre moyen est "%20".
Par ailleurs, si le champ caché ne sert qu'à cela, alors il aurait été plus pratique d'utiliser une simple variable ordianaire ou même rien du tout, et d'avoir un simple Thisform.input.value = "blog" + Thisform.input.value;