Je crée une application Web et j'ai du mal à remplacer la page.
Dans la fonction maPage ()
, quand je mets le location.replace ("file.html");
au début, ça marche si je n'insère pas entrées
sur l'application Web, mais lorsque je mets location.replace ("file.html");
dans l'instruction if
alors ne fonctionne pas du tout, et est-ce là où je dois mettre le location.replace
.
S'il vous plaît, aidez-moi.
code js:
<form id="formId" name="formId" > <label>sth </label><br><br> <label for="name"> name </label> <input type="text" id="name" name="name" required> <fieldset> <legend>sth</legend> <ul class="class-radio" > <li> <input type="radio" name="nameRadio" id="abc" value="abc" required><label for="abc">abc</label></li> <li> <input type="radio" name="nameRadio" id="cdf" value="cdf"><label for="cdf">cdf</label></li> </ul> </fieldset> <input id="submit" type="submit" value="next" > </form>
3 Réponses :
changez votre type de bouton en bouton. votre navigateur soumet en premier.
<form id="formId" name="formId" > <label>sth </label><br><br> <label for="name"> name </label> <input type="text" id="name" name="name" required> <fieldset> <legend>sth</legend> <ul class="class-radio" > <li> <input type="radio" name="nameRadio" id="abc" value="abc" required><label for="abc">abc</label></li> <li> <input type="radio" name="nameRadio" id="cdf" value="cdf"><label for="cdf">cdf</label></li> </ul> </fieldset> <input id="submit" type="button" value="next" > </form>
var submit = document.getElementById("submit"); submit.addEventListener("click",myPage); function myPage(){ //location.replace("file.html"); // here this is working var name=document.formId.nameRadio.value;//name="abc" alert(name); if (name=="abc"){ location.replace("file.html");//but here not } }
Je pensais la même chose
Vous pouvez arrêter l'envoi habituel du formulaire en ajoutant preventDefault ()
à votre fonction onClick.
<form id="formId" name="formId"> <label>sth </label><br><br> <label for="name"> name </label> <input type="text" id="name" name="name" required> <fieldset> <legend>sth</legend> <ul class="class-radio"> <li> <input type="radio" name="nameRadio" id="abc" value="abc" required><label for="abc">abc</label></li> <li> <input type="radio" name="nameRadio" id="cdf" value="cdf"><label for="cdf">cdf</label></li> </ul> </fieldset> <input id="submit" type="submit" value="next"> </form>
var submit = document.getElementById("submit"); submit.addEventListener("click", myPage); function myPage(e) { //prevent form submission e.preventDefault(); var name = document.getElementById('formId').nameRadio.value; if (name == "abc") { location.replace("file.html"); } }
Vous devez expliquer quel était le problème et comment vous l'avez résolu, pas seulement le code postal.
Ouais. Je pense que je l'ai frappé par accident.
Il semble que vous souhaitiez plus de contrôle sur l'envoi du formulaire.
Vous pouvez changer le type d'entrée de soumettre à bouton; Renommez également ce bouton pour éviter confusion avec la méthode d'envoi du formulaire .
Vous pouvez également simplifier le code, en utilisant l'événement click directement sur l'entrée.
Voici quelque chose que vous pouvez essayer:
<html> <body> <form id="formId" name="formId"> <label>sth</label><br><br> <label for="name">name</label> <input type="text" id="name" name="name" required> <fieldset> <legend>sth</legend> <ul class="class-radio"> <li><input type="radio" name="nameRadio" id="abc" value="abc" required><label for="abc">abc</label></li> <li><input type="radio" name="nameRadio" id="cdf" value="cdf"><label for="cdf">cdf</label></li> </ul> </fieldset> <input id="btnSubmit" type="button" value="next" onclick="mySubmit()"> </form> <script> function mySubmit() { var name = document.formId.nameRadio.value; if (name == "abc"){ location.replace("file.html"); } else { // Submit a form document.formId.submit(); } } </script> </body> </html>
La raison la plus probable est que
name
n'est pas égal à "abc".Je ne comprends pas votre description du problème.
@Pointy merci de me répondre, mais ce n'est pas ça .... parce que je l'ai testé en imprimant qc dans l'instruction if ... et il a été imprimé ...
Soumettez les boutons soumettre afin que vous ayez deux actions en même temps ....
console.log ()
est votre ami avec des valeurs de débogage.@Barmar Je suis vraiment désolé mais je ne suis pas de langue maternelle anglaise.Merci
@epascarello merci