问题描述
我正在尝试在前端使用Ajax的10月cms项目中添加价格过滤器。每当我的js代码运行时,我都会收到一个错误((未捕获的TypeError:$ form.request不是一个函数)。
$(function () {
$('.min_gp').on('change',function(){
var $form = $(this).closest('form');
$form.request();
});
});
我通过观看youtube上的教程来做到这一点。我不明白为什么会收到此错误以及如何解决该错误。 `
解决方法
AFAIK(据我所知)没有称为.request()
的jQuery函数。在您的代码中,您正在$form
对象上调用jQuery API。您要在值更改时提交表单吗?如果是这样,请尝试以下操作:
$('.min_gp').on('change',function(){
var $form = $(this).closest('form');
$form.submit();
});
(有关表单函数的jQuery文档供参考:https://api.jquery.com/category/forms/)
但是,有一个.request()
函数专用于OctoberCMS AJAX API,但调用方式有所不同,需要您了解AJAX处理程序:
$('form').request('onCalculate',{
update: {calcresult: '.result'}
})
(请参阅:https://octobercms.com/docs/ajax/javascript-api)
-
作为参考,您还可以通过在表单元素的onchange
属性中传递函数的元素提交表单:
<select class="form-control price-filter-dropdown min-gp"
onchange="$(this).closest('form').submit()">