2016-05-03 9 views
2

Ich habe ein Dropdown-Menü für Länder mit ID #land. Ich versuche, den Wert als Ajax-Request an eine PHP-Datei ausgewählt passieren - countrycode.php und den Wert auf ein anderes Eingabefeld mit der ID #tele empfangen passieren .. Mein Code ist wie folgt:'stepUp' hat ein Objekt aufgerufen, das keine Schnittstelle implementiert HTMLInputElement

<script> 
$('#country').change(function() { 
    //var country = $(this).val(); 
    var country = $('#country').val(); 
    //alert(country); 
}); 
       $.ajax({ 
        type: "POST", 
        url: 'countrycode.php', 
        data: { country : country }, 
        success: function(data) 
        { 
         $("#tele").html(data); 
        } 
       }); 
</script> 

Der Alarm (Land); zeigt das richtige Land an. Ich versuchte mit:

var country = $(this).val(); 

auch mit der richtigen Warnmeldung.

Das Problem ist mit dem:

data: { country : country }, 

i Fehler erhalten: Typeerror: ‚Step-up‘ auf einem Objekt aufgerufen, die nicht Schnittstelle Htmlinputelement nicht implementiert

ich alle Antworten in Stackoverflow versucht. .aber kann nicht den Grund verstehen, warum es nicht funktioniert ????

Antwort

3

Ihre country Variable ist innerhalb change Funktion. So wird es für Ajax undefiniert. Ich denke, es muss global sein.

Können Sie das versuchen?

<script> 
     var country; 
     $('#country').change(function() { 
      //var country = $(this).val(); 
      country = $('#country').val(); 
      //alert(country); 
      $.ajax({ 
       type: "POST", 
       url: 'countrycode.php', 
       data: { country : country }, 
       success: function(data) 
         { 
         $("#tele").val(data); 
         } 
      }); 
     }); 
</script> 
+0

@ user3790186 Ich versuchte innerhalb der Änderungsfunktion. Die Daten werden nicht an das Eingabefeld #tele id angehängt. – user3790186

+1

Ich habe den Grund herausgefunden. Es sollte $ ('# Tele') sein. Val (Daten); Vielen Dank. – user3790186

+0

Aktualisiert. @ user3790186 –

1

Wenn Sie versuchen, ein Feld mit Ajax udpate wenn das country Feld geändert wird, dann müssen Sie den Ajax-Aufruf innerhalb des .change() Handler setzen, so das ist, wenn sie aufgerufen wird.

<script> 
$('#country').change(function() { 
    var country = $('#country').val(); 
    $.ajax({ 
     type: "POST", 
     url: 'countrycode.php', 
     data: { country: country }, 
     success: function (data) { 
      $("#tele").html(data); 
     } 
    }); 
}); 
</script> 

Wie Sie es vorher hatten, waren Sie nur die Ajax-Funktion beim Start aufrufen, bevor ein Wert in dem Land variabel war und dann, wenn das .change() Ereignis aufgetreten ist, können Sie die Ajax-Funktion überhaupt nicht forderten.

Verwandte Themen