TypeError:stepUp调用未实现接口HTMLInputElement的对象

时间:2014-04-09 12:43:52

标签: javascript jquery ajax

我有这段代码

<a data-remote="true" data-box_no="1" class="find_or_add_horse" href="#">Find/Add Horse</a>

当我点击链接

时,我会进行ajax调用
$(document).on('click', '.find_or_add_horse', function () {
        var search_term = $(this).parents('.sub-middle-column').find('.search_horse');
        var box_no = $(this).data('box_no');


        $.ajax({
            url: "/startup_wizard/find_horse",
            dataType: 'script',
            type: 'GET',
            data: { box_no: box_no, search_term: search_term}
        });
        return false;


    });

但是,当我点击链接时,我收到此错误&#34; TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement&#34;当我从ajax调用

中删除此代码时
data: { box_no: box_no, search_term: search_term}

我的代码工作正常。为什么会这样,以及如何解决这个问题?我该如何发送数据?

3 个答案:

答案 0 :(得分:50)

如果search_term是输入字段,您可能希望获得其值。

var search_term = $(this).parents('.sub-middle-column').find('.search_horse').val();

现在您正在引用包含HTMLDom-Element的jQuery对象,但我认为您想要的是搜索输入元素中的字符串。

答案 1 :(得分:4)

TypeError: stepUp调用一个没有实现接口HTMLInputElement的对象,当你忘记了(id)和#符号时。上课的标志。什么时候我们可以直接获得价值。或#符号。

错误的方法: - var email = $('PHMC_email').val();

正确的方法:

-var email = $('#PHMC_email').val();或者 var email = $('.PHMC_email').val();

答案 2 :(得分:0)

我有类似的问题,这是因为尝试访问输入元素的值时忘记了 .val()

 $.post('@Url.Action("Calculate", "AvailableInvestment")',
            {
                code: $("#calculatorCode").val(),
                amount: $("#calculatorAmount").val()
            },
            function (data, status) {
                console.log(data, status);
                if (data.success == true) {
                     
                }

                else {  
                     
                    return;
                }

            }
        );