Javascript jqueryajax赢得';不发送get请求,而是刷新页面
这段代码应该向预定义的url(包括变量)发送get请求;然后刷新页面上的数据表 然而,它所做的只是刷新页面——我的服务器无法接收到对指定URL的get请求。如何才能让它工作Javascript jqueryajax赢得';不发送get请求,而是刷新页面,javascript,jquery,ajax,Javascript,Jquery,Ajax,这段代码应该向预定义的url(包括变量)发送get请求;然后刷新页面上的数据表 然而,它所做的只是刷新页面——我的服务器无法接收到对指定URL的get请求。如何才能让它工作 $(".ajaxAction").on("click",function (event) { var ajaxActionUrl = $(this).data("actionUrl"); var ajaxActionQuery = $.get({type:"GET", url:ajaxActionUrl, s
$(".ajaxAction").on("click",function (event) {
var ajaxActionUrl = $(this).data("actionUrl");
var ajaxActionQuery = $.get({type:"GET", url:ajaxActionUrl, success:function () {
order_table.ajax.url(ajaxTableUrl).load();
}});
event.preventDefault();
})
编辑:我的HTML实际上是一个Jinja模板,我的JS文件如下:
$(document).ready(function(){main()})
function main(){
ajaxTableUrl = $('#initial_table').data("tableLinkedTo")
$(".container").hide();
$("#OrderUI").show();
$("#order_button").parent().css("backgroundColor","#f5f5f5");
$("#initial_table").parent().css("backgroundColor","yellow");
$(".menu-tab").on("click",function(){
$("li.hnav").removeAttr('style');
$(this).parent().css("backgroundColor","#f5f5f5");
$("#kinandonboard").parent().removeAttr('style');
var linkedto = $(this).data("linkedto");
$(".container").hide();
$(linkedto).show()
}
);
$("#kinandonboard").on("click",function(){
$("#order_button").parent().css("backgroundColor","#f5f5f5");
}
);
var order_table = $('#order_table').DataTable({
retrieve: true,
ajax : ajaxTableUrl,
'bSort': false,
"columns" : [{"data": "orderId"},
{"data": "companyName"},
{"data": "customerOrderRef"},
{"data": "orderPaid"},
{"data": "orderPrice"},
{"data": "orderDate"},
{"data": "requiredDate"},
{"data": "orderQuantity"},
{"data": "orderStage"},
{"data": "orderActions"},],
"columnDefs": order_table_cols,
"scrollY": "200px",
"scrollCollapse": true,
"info": true,
"paging": false,
"searching": false
}) ;
$(".order-table-button").on("click",function(){
$("li.vnav").removeAttr('style');
$(this).parent().css("backgroundColor","yellow");
ajaxTableUrl = $(this).data("tableLinkedTo");
order_table.ajax.url(ajaxTableUrl).load()
});
$(".ajaxAction").on("click",function (event) {
event.preventDefault();
var ajaxActionUrl = $(this).data("actionUrl");
var ajaxActionQuery = $.get({type:"GET", url:ajaxActionUrl, success:function () {
order_table.ajax.url(ajaxTableUrl).load();
}});
})
}
order_table.ajax.url(ajaxTableUrl.load())出错代码>但我们无法判断错误,因为您没有为此发布代码。
该行将中断代码,因此,event.preventDefault()无法执行代码>,导致表单提交,显示为页面刷新。
将其更改为:
$(".ajaxAction").on("click",function (event) {
event.preventDefault();
var ajaxActionUrl = $(this).data("actionUrl");
var ajaxActionQuery = $.get({type:"GET", url:ajaxActionUrl, success:function () {
order_table.ajax.url(ajaxTableUrl).load();
}});
})
因此,页面刷新停止,您可以在浏览器的错误日志控制台中看到order_表的错误。尝试提供更多信息。基于这段微小的代码片段,很难全面了解错误所在。理想情况下,还要附加此单击侦听器的相关HTML代码
与此问题相关的最常见问题有:
jQuery未正确加载,请检查浏览器控制台是否有错误
单击侦听器未触发,并且根本不调用偶数.preventDefault
。检查您正在侦听的类是否正确,或者您是否正在侦听动态加载的元素。可能尝试在单击事件函数的开头添加一个console.log('click')
。如果控制台中没有任何记录,您将知道在哪里搜索
编辑
根据您提供的代码,数据表似乎通过AJAX加载数据(如我在第2点中所述)。尝试将代码更改为:
$(文档)。在(“单击”、“.ajaxAction”上,函数(事件){
var ajaxActionUrl=$(this).data(“actionUrl”);
var ajaxActionQuery=$.get({type:“get”,url:ajaxActionUrl,success:function(){
order_table.ajax.url(ajaxTableUrl.load();
}});
event.preventDefault();
})
我打赌您正在尝试将单击事件附加到动态元素,因此它不在那里。因此,您需要更改单击以使用事件委派
$(".ajaxAction").on("click",function (event) {
到
将“防止默认值”上移到on函数的第一行什么是ajaxTableUrl?@JordanHendrix尝试了这一点,但没有什么不同:(@user2181397这是Jquery datables插件用来从我的服务器获取json的url。我猜点击事件实际上没有附加到任何东西。这不是一个答案,你可以在评论中写出来section@Kinando我根据您共享的代码更新了评论,请查看。这样做了,没有改进。然后出现了一个e错误:完全是因为其他地方阻止了这段javascript的运行。在google chrome中按F12并检查控制台以查看错误的来源。
$(document).on("click", ".ajaxAction" ,function (event) {