我有这段代码
<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}
我的代码工作正常。为什么会这样,以及如何解决这个问题?我该如何发送数据?
答案 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;
}
}
);