Problème d'onchange vs onsubmit HTML / Javascript
-
28-10-2019 - |
Question
J'essaie un code, qui chargera un iframe onsubmit
.Je suis capable de le faire onchange
d'un champ de texte (code pris quelque part).Mais onsubmit
ne fonctionne pas:
Fonctionne
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Content-Script-Type" content="text/javascript">
<meta name="Content-Style-Type" content="text/css">
<title>Example</title>
</head>
<body>
<input value="Song1" onchange="foo.location='song.php?song=blind_willie.mp3'" style="display:block; margin:auto" type="text">
<iframe name="foo" style="display:block; margin:auto"></iframe>
</body>
</html>
NE FONCTIONNE PAS
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Content-Script-Type" content="text/javascript">
<meta name="Content-Style-Type" content="text/css">
<title>Example</title>
</head>
<body>
<input value="Song1" onsubmit="foo.location='song.php?song=blind_willie.mp3'" style="display:block; margin:auto" type="Submit">
<iframe name="foo" style="display:block; margin:auto"></iframe>
</body>
</html>
La solution
Lors de la soumission se fait sur le formulaire, pas sur le bouton d'envoi, essayez d'utiliser type="button" à la place dans un événement "onclick".
Autres conseils
OnSubmit
est un événement form
donc il ne fonctionnera pas sur input
.
Utilisez plutôt type='button'
et l'événement OnClick
.
2 choses:
onsubmit appartient à l'élément de formulaire, pas à l'entrée, donc vous mettriez votre entrée actuelle dans un formulaire comme celui-ci:
<form onsubmit="foo.location='song.php?song=blind_willie.mp3'; return false">
<input value="Song1" style="display:block; margin:auto" type="Submit" />
</form>
La deuxième chose est que vous devez renvoyer false à partir de la soumission ou il essaiera d'actualiser la page car vous n'avez pas d'action.
En passant, cela semble être une méthode assez étrange que vous utilisez.Vous pouvez certainement faire simplement:
<input value="Song1" onclick="foo.location='song.php?song=blind_willie.mp3'" style="display:block; margin:auto" type="Submit" />