'升压'调用了一个没有实现接口HTMLInputElement的对象

时间:2016-05-03 05:05:39

标签: javascript jquery ajax

我有一个id为#country的国家/地区。我试图将选择的值作为ajax请求传递给php文件 - countrycode.php并将接收到的值传递给另一个id为#tele的输入字段。我的代码如下:

<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:&#39; stepUp&#39;调用了一个没有实现接口HTMLInputElement

的对象

我在Stackoverflow中尝试了所有答案..但是无法理解为什么它不能正常工作????

2 个答案:

答案 0 :(得分:5)

您的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>

答案 1 :(得分:1)

如果您在更改country字段时尝试使用Ajax更改字段,则需要将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>

如前所述,在国家变量中有任何值之前,你只是在启动时调用ajax函数,然后当.change()事件发生时,你根本没有调用ajax函数。