2011-05-23 5 views
19

ouverture J'ai un bouton Envoyer un onClick:window.location() ne fonctionne pas, pas la page

<div id="messageDiv"> 
<form> 
<textarea name="message" rows="10" cols="20"></textarea></textarea> 
<br /><br /> 
<input type="submit" value="Send" onClick="sendmail()"> 
<input type="reset" value="Reset" name='reset'> 
</form> 
</div> 

j'ai mon sendmail:

function sendmail() 
    { 
     window.location.href = "http://www.rainbowcode.net/index.php/profiles/mail?="+mailid; 
     window.location('http://www.rainbowcode.net/index.php/profiles/mail?='+mailid); 
     //return true; 
    } 

mailid est une variable globale qui obtient défini dans une autre fonction JS et il contient la valeur correcte. Comment se fait-il que window.location n'ouvre pas ma page?

Si j'ouvre manuellement avec un mailid il fonctionne très bien ..

+0

Pourquoi définissez-vous location.href et l'emplacement de l'appel en tant que fonction? – Nathan

+0

Je ne comprends pas? –

+0

Est-ce que 'window.location = 'http: //stackoverflow.com/';' ne fonctionne pas? – Marty

Répondre

49

La définition de l'emplacement fonctionne correctement, mais le formulaire est envoyé, ce qui permet de recharger la page en cours.

return false de la méthode:

function sendmail() { 
    window.location.href = "http://www.rainbowcode.net/index.php/profiles/mail?="+mailid; 
    return false; 
} 

et retourner ce statut en cas d'arrêter les soumettre:

<input type="submit" value="Send" onclick="return sendmail()"> 
+1

merci! quel est le diff entre return true et return false? –

+1

@Helloise Smit: Si vous renvoyez false, il arrêtera l'action par défaut de l'événement, c'est-à-dire le clic sur le bouton. Le retour vrai (ou rien du tout) permettra le clic, qui soumettra le formulaire. – Guffa

+0

merci ... tout va bien juste encore une chose s'il vous plaît: j'ai une zone de texte avec le soumettre où un utilisateur peut taper un message et cliquez sur soumettre qui appellera alors mon window.location.href ... comment puis-je passer sur le message à la nouvelle fenêtre? ma forme est un "post" et l'id de textarea est "message"? merci –

3

Si vous avez besoin d'ouvrir une nouvelle fenêtre, vous devez utiliser la méthode window.open(). window.location fait référence à l'adresse actuelle de Windows, et ne rechargera la fenêtre ACTUELLE que si vous utilisez window.location.reload().

+0

je vous remercie window.open fonctionne, il ouvre une nouvelle fenêtre mais je veux pouvoir cliquer sur la flèche retour et revenir à la page précédente s'il vous plaît –

0

réponses solides déjà, mais pourquoi lutter contre le système? En particulier si vous avez appelé avec jquery ou onClick - il n'y aurait pas un retour en ligne est mon point - donc au lieu vous pouvez simplement modifier l'action sur le submit:

document.form.action = 'http://www.rainbowcode.net/index.php'

alors vous pouvez choisir l'un des former des variables si vous en avez besoin ou ignorer sinon.

Questions connexes