2 actions sur 1 formulaire : onChange sur <select> + onSubmit

Signaler
Messages postés
4
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
9 octobre 2008
-
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour à tous,

Je rencontre un problème avec l'implémentation de google map api dans une de mes pages.

Je souhaite lancer 2 fonctions javascript à partir d'un seul formulaire.
Lors de la sélection dans la liste déroulante je veux valider mon formulaire pour afficher un résultat et en même temps lancer une fonction js pour google map avec un paramètre de la liste déroulante ... (pas très clair?)

Le problème est que seul le "onChange" est réalisé et pas le "onSubmit"...

le code:
<head>
<script src= "http://maps.google.com/maps?file=api&amp;v=2.x&amp;key=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" type="text/javascript"></script>

<script type="text/javascript">
  var map = null;
    var geocoder = null;

    function initialize() {
      if (GBrowserIsCompatible()) {
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(37.4419, -122.1419), 15);
        geocoder = new GClientGeocoder();
      }
    }

    function showAddress(address) {
      if (geocoder) {
        geocoder.getLatLng(
          address,
          function(point) {
            if (!point) {
              alert(address + " not found");
            } else {
              map.setCenter(point, 15);
              var marker = new GMarker(point);
              map.addOverlay(marker);
              marker.openInfoWindowHtml(address);
            }
          }
        );
      }
    }
</script>

</head>

<form name="form1" action="#" method="post" onSubmit="showAddress(this.address.value); return false">
Neo advertising offices:&nbsp;
<select name ="loc" id="loc" onChange='this.form.submit();'>

<option value="option1">option1</option>
<option value="option2">option2</option>
<option value="option3">option3</option>

</select>
">
</form>

Merci à ceux qui pourront m'éclairer.
A+

3 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Bonjour,
mets tout dans une même fonction

<select name="loc" id="loc"
onChange='Fct_Envoi( this);'>
et la fonction Fct_Envoi
//--------------------
function Envoi( this_){

  showAddress( this_.address.value);
  this_.form.submit();
}
un truc dans ce style...
;O)
Messages postés
4
Date d'inscription
mercredi 8 décembre 2004
Statut
Membre
Dernière intervention
9 octobre 2008

j'ai deja testé cela et ça ne fonctionne pas ...

function validOffice(this_){
        showAddress( this_.address.value);
        this_.form.submit();
    }

<select name="loc" id="loc" onChange='validOffice(this);'>
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
1000 excuses pas débuggé en plein, le this que tu passes est en fait le SELECT, il faut
passer le this.form
il faut en fait faire

<select name="loc" id="loc"
onChange='Fct_Envoi( this.form);'>
avec la fonction
//--------------------
function Fct_Envoi(
this_){
  showAddress( this_.address.value);
  this_.submit();

}

;O)