2010-01-25 6 views
0

J'ai un javascript simple (pas de cadres fantaisie), qui, sur la soumission d'un élément de formulaire, pose une question à l'utilisateur. Si la réponse renvoie true, le script définit l'action du formulaire sur une certaine URL (qui contient une logique côté serveur) et appelle la méthode sumbit de ce formulaire. Ou du moins, en théorie, c'est ce que cela signifiait faire! Mais ça ne marche pas ... ça ne fait rien. Il semble soumettre le formulaire, mais si c'est le cas, la logique côté serveur dans l'autre fichier (qui a été définie comme valeur de la propriété action) garantirait que l'utilisateur est pris ailleurs.Javascript, avec formulaire dynamique Action, ne pas soumettre sur (vrai) de dialogue de confirmation

Voici ma forme:

<form name='myForm' id='myForm' method='post' onSubmit='annoyTheUser(this);'> 

Voici ma fonction javascript:

function annoyTheUser(theForm) 
{ 
    if(confirm("blah?")) 
    { 
    theForm.action = 'savequestion.asp'; 
    theForm.submit(); 
    } 
} 

Répondre

2

Votre JS devrait ressembler à:

function annoyTheUser(theForm) 
{ 
    if(confirm("blah?")) 
    { 
     theForm.action = 'savequestion.asp'; 
     return true; 
    } 
    else 
     return false; 
} 
+0

a besoin de 'onsubmit = "return (annoyTheUser (this));"' de le faire, ce qui est probablement ce que l'OP veut. – Anonymous

+0

Mmmh c'est évident et je ne l'ai pas vu ... mais ça a vraiment marché dans Safari (mais pas dans Firefox (que j'ai seulement essayé après ce post;))). –

0

Pouvez-vous ajouter la partie qui fait la formulaire soumettre aussi. Le script a l'air bien. Seul celui-là semble suspect.

0

Essayez cette

<form name='myForm' id='myForm' method='post' onSubmit='return annoyTheUser(this);'> 

Et le script doit être

function annoyTheUser(theForm) 
{ 
if(confirm("blah?")) 
{ 
theForm.action = 'savequestion.asp'; 
return(true); 
} 
else 
{ 
return(false); 
} 
} 
Questions connexes