web-dev-qa-db-fra.com

Je veux que le formulaire html ne fasse rien

Je veux qu'un formulaire html ne fasse rien après avoir été soumis.

action="" 

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

Fondamentalement, je veux qu'une fonction ajax soit appelée chaque fois qu'un bouton est enfoncé ou que quelqu'un frappe "Entrée" après avoir tapé les données. Oui, je pourrais 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 entrée" sans obtenir tout hackish.

56
Steven Biggums

En utilisant return false; dans le javascript que vous appelez à partir du bouton d'envoi, vous pouvez empêcher l'envoi du formulaire.

Fondamentalement, vous avez besoin du code HTML suivant:

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

Ensuite, le javascript de support:

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

Si vous le souhaitez, vous pouvez également avoir certaines conditions permettant au script de soumettre le formulaire:

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

Jumelé avec:

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

    return false;    
}
//--></script>
77
Jeffrey Blake

Cela fonctionne également:

<form id='my_form' action="javascript:myFunction(); return false;">
8
user669677
<form id="my_form" onsubmit="return false;">

est assez ...

4
simple

Que diriez-vous

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

Vous pouvez utiliser le code HTML suivant

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

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

c'est à dire:

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

Et il suffit d'appeler cette fonction en cliquant sur le bouton Soumettre. Il existe de nombreuses façons différentes.

0
Ross