Bonjour les amis,

M'intéressant à ce jour a la librairie Prototype de javascript et plus précisément l'une de ces nombreuse fonction, je me pose à un petit souci

M'inspirant de la fonction suivante "submit_to_remote" de prototype:

function submit_to_remote($name, $value, $options = array(), $options_html = array())
  {
    $options = _parse_attributes($options);
    $options_html = _parse_attributes($options_html);

    if (!isset($options'with']))
    {
      $options'with'] = 'Form.serialize(this.form)';
    }

    $options_html'type'] = 'button';
    $options_html'onclick'] = remote_function($options).' return false;';
    $options_html'name'] = $name;
    $options_html'value'] = $value;

    return tag('input', $options_html, false);
  }

pour exécuter une action AJAX sur l'événement onClick d'un bouton:

la fonction suivante renvoie un input button, donc au click sur le bouton enlèvement onClick sur ce bouton actionne l'action ajax, nous somme d'accord.
Mais ma question est la suivante

Ou est désactiver la soumission du formulaire lors de l'événement à la touche entrée?

Car m'étant servi de la fonction ci-dessus pour m'en créer une personnelle, quand je clique sur le bouton mon action ajax fonctionne merveilleusement bien, mais quand je clique sur la touche entrée j'ai toujours une soumission du formulaire avec un rechargement de page et non en ajax.

Voila mon input perso qui fonctionne:

<input type="button" onclick="$.ajax({url: '/resetting/send-email',
  cache: false,
  type: 'POST',data: $(this.form).serialize(),success: function(data){$('#reset_password').html(data);},error: function() { alert('Impossible de charger la requête Ajax'); }
});
return false;" value="Réinitialiser le mot de passe" class="">

Une idée les amis

Merci à tous

1 réponse


Bonjour deux éléments de réponses :

  • Ne pas écouter l’événement click, mais plutôt un submit
  • Ecouter aussi l'appuie sur la touche entrée via un on 'keyUp' quelque chose comme ça (google est un bon ami pour se rappeler le nom des event sans se tromper dans la casse) puis un test sur le keyCode passé dans l'event.