2010-08-02 6 views
45

Je veux un formulaire HTML pour ne rien faire après avoir été soumis.Voulez-html formulaire soumettre à ne rien faire

action="" 

n'est pas bon car cela provoque le rechargement de la page.

Fondamentalement je veux qu'une fonction d'ajax soit appelée chaque fois qu'un bouton est pressé ou quelqu'un frappe "entrer" après avoir tapé des données. Oui, je peux supprimer la balise de formulaire et ajouter simplement appeler la fonction à partir de l'événement onclick du bouton, mais je veux également la fonctionnalité "frapper enter" sans obtenir tout hackish.

+2

« je veux aussi le "frapper entrer" fonctionnalité sans avoir tout le hackish. " Je pense que ce vaisseau a navigué après que vous ayez décidé d'avoir un formulaire avec action = "". pourquoi ne pas simplement câbler des gestionnaires pour des événements onclick, et des événements de pression de touche? – RPM1984

Répondre

63

En utilisant return false; dans le javascript que vous appelez à partir du bouton d'envoi, vous pouvez arrêter la soumission du formulaire.

Fondamentalement, vous devez le code HTML suivant:

<form onsubmit="myFunction(); return false;"> 
<input type="submit" value="Submit"> 
</form> 

Puis le javascript soutien:

<script language="javascript"><!-- 
function myFunction() { 
    //do stuff 
} 
//--></script> 

Si vous le désirez, vous pouvez aussi avoir certaines conditions permettent le script de soumettre le formulaire:

<form onSubmit="return myFunction();"> 
<input type="submit" value="Submit"> 
</form> 

Couplé à:

<script language="JavaScript"><!-- 
function myFunction() { 
    //do stuff 
    if (condition) 
     return true; 

    return false;  
} 
//--></script> 
+3

Mot-clé 'function' manquant:' function myFunction() {} ' –

0

Dans le cadre de l'événement onclick du bouton, renvoyez false, ce qui empêchera la soumission du formulaire.

-à-dire:

function doFormStuff() { 
    // ajax function body here 
    return false; 
} 

Et il suffit d'appeler cette fonction sur le bouton soumettre clic. Il y a plusieurs façons différentes.

2

Que diriez-vous

<form id="my_form" onsubmit="the_ajax_call_function(); return false;"> 
...... 
</form> 
-1

utilisation jquery. Peut-être mettre un div autour de vos éléments de la forme. Ensuite, utilisez preventDefault() et ensuite faire votre ajax appelle

2

Vous pouvez utiliser le code HTML suivant

<form onSubmit="myFunction(); return false;"> 
    <input type="submit" value="Submit"> 
</form> 
7

Il fonctionne aussi:

<form id='my_form' action="javascript:myFunction(); return false;"> 
+2

Bien que cela ne fasse rien, la console dit:' Uncaught SyntaxError: Illegal return statement'. – alej27

-1
<form action='javascript:functionWithAjax("search");'> 
    <input class="keyword" id="keyword" name="keyword" placeholder="input your keywords" type="search"> 
    <i class="iconfont icon-icon" onclick="functionWithAjax("search");"></i> 
</form> 

<script type="text/javascript"> 
function functionWithAjax(type) { 
    // ajax action 

    return false; 
} 
</script> 
+0

Vous devriez vraiment expliquer le code un peu. Cela transformera une bonne réponse en une bonne réponse. – Neil