2016-05-03 4 views
2

У меня есть выпадающее меню стран с id #country. Я пытаюсь передать значение, выбранное в качестве Ajax запроса в файл PHP - countrycode.php и передать значение, полученное в другое поле ввода с идентификатором #tele .. Мой код выглядит следующим образом:«stepUp» вызвал объект, который не реализует интерфейс. 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> 

Предупреждение (страна); отображает выбранную страну. Я пробовал использовать:

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

тоже с правильным предупреждающим сообщением.

Проблема заключается с:

data: { country : country }, 

Я получаю сообщение об ошибке: TypeError: «стартап» называется на объекте, который не реализует интерфейс HTMLInputElement

Я пробовал все ответы в Stackoverflow. . Но не могу понять, почему он не работает ????

ответ

3

Ваша country переменная находится внутри change функция. Таким образом, он не будет определен для ajax. Я думаю, что это должно быть глобальным.

Можете ли вы попробовать это?

<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 Я попытался использовать функцию изменения. Данные не добавляются к поданному элементу ввода #tele. – user3790186

+1

Я выяснил причину. Он должен быть $ ('# tele'). Val (данные); Спасибо. – user3790186

+0

Обновлено. @ user3790186 –

1

Если вы пытаетесь udpate поля с Ajax, когда country поля изменяется, то вам необходимо поместить вызов Ajax внутри .change() обработчика так что, когда она вызывается.

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

Как было раньше, вы звонили только Аякса функцию при старте до того, как было какое-либо значение в переменной страны, а затем, когда произошло событие .change(), вы не вызывая функцию АЯКС вообще.

Смежные вопросы