【问题标题】:TypeError: stepUp called on an object that does not implement interface HTMLInputElementTypeError:在未实现接口 HTMLInputElement 的对象上调用 stepUp
【发布时间】:2014-05-22 16:16:06
【问题描述】:

我有这个代码

<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;


    });

但是当我点击链接时,当我从 ajax 调用中删除此代码时,我会收到此错误“TypeError: 'stepUp' called on an object that does not implement interface HTMLInputElement

data: { box_no: box_no, search_term: search_term}

我的代码运行良好。为什么会发生这种情况以及如何解决这个问题?如何发送数据?

【问题讨论】:

  • 除此解决方案外,我建议检查每个变量名称是否符合您在 ajax 请求的数据数组中提供的名称。这也可能触发此错误。

标签: javascript jquery ajax


【解决方案1】:

如果search_term 是一个输入字段,您可能想要获取它的值。

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

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

【讨论】:

  • search_term(s) 是一个数组时,.val() 似乎只获得第一个元素,例如来自复选框:&lt;input type="checkbox" name="users[]" value="$userId" /&gt;。然后只有第一个$userId.val() 返回。
  • 我写了 var start = $("#khatian_start_input"); 并得到了错误。实际上我错过了 .val()*。添加后错误消失。感谢您的回答。
【解决方案2】:

TypeError: stepUp 调用了一个没有实现接口 HTMLInputElement 的对象,当你忘记了#sign for(id) 和 .签到上课。当我们可以在没有 .或#号。

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

正确方法:

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

【讨论】:

  • Ankush 欢迎来到 Stack Overflow。提示您可以在代码周围使用 ` 使其看起来像这样 = code stuff 以使格式更清晰。查看我的编辑。
猜你喜欢
  • 2013-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-12
  • 2014-03-24
相关资源
最近更新 更多