当单击 jsp 中的按钮时,它会再次调用 js 中的就绪函数.错误
When click a button in jsp it again call ready function in js. Error
我在jsp中有一个按钮
<button id="btnViewAll">View All</button>
当我点击它时,我想在js中调用viewAllInventory()函数。
function viewAllInventory() {
$.ajax({
url : "/GradleSpringMVC/inventory/viewAll",
type : 'POST',
dataType : 'json',
data : JSON.stringify(populateViewAllParam()),
contentType : 'application/json',
mimeType : 'application/json'
}).done(
function(response) {
createInventoryTable(response);
}).fail(function(error) {
// parseToPageAlerts(error.responseText);
}).always(function() {
// hideLoading()
});}
但是当我调试js文件时。它再次调用 js 中的就绪函数。不调用查看所有库存函数。
我在 js 中的就绪函数是
$(document).ready(function() {
$("body").off("click", "#btnAdd").on("click", "#btnAdd", doAdd);
$("body").off("click", "#btnClear").on("click", "#btnClear", doClearAll);
$("body").off("click", "#btnSearch").on("click", "#btnSearch", doSearch);
$("body").off("click", "#btnDelete").on("click", "#btnDelete", deleteRow);
$("body").off("click", "#btnViewAll").on("click", "#btnViewAll", viewAllInventory);
});
所有的ajax调用都运行良好,我想正确工作这一行
$("body").off("click", "#btnViewAll").on("click", "#btnViewAll", viewAllInventory);
谁能给我一个想法,为什么会这样?
我尝试了您的代码,它对我有用。我认为问题可能出在您的 html 中。
如果您在表单元素中有 btnViewAll 按钮,则每次单击按钮都会提交该表单,从而重新加载页面,因此请添加
$('form').submit(function(e){
e.preventDefault();
});
在你的
$(document).ready(function() {
......
......
}
功能,以便您可以阻止表单提交。或者,如果您不执行任何表单提交(仅 ajax 类型 POSTing),那么您可以简单地删除表单元素。
我们可以通过将<button id="btnViewAll">View All</button>
更改为 <button type="button" id="btnViewAll">View All</button>
来解决此问题。我们需要添加type="button"
否则它被识别为提交按钮。
相关文章:
- 如何从Java/scala调用js美化程序
- 是否可以在使用headerphp函数后自动调用JS函数
- 全局窗口热键在最小化chrome窗口时调用js函数
- 当用户点击动态创建的链接时,如何调用JS方法.JQuery,ASP.NET MVC
- 从PHP调用JS函数不起作用
- 如何从构造函数中调用js原型方法
- 从加载的页面调用js页面
- 在shtml中调用js函数
- 当调用JS函数具有alert()时,应用程序将被冻结
- 无法从onclick事件调用JS函数
- 如何在自动完成更新时调用JS函数
- 在单击浏览器选项卡上调用 js 函数
- 从 PHP 文件调用 js 函数
- 尝试在 PHP 代码中调用 js 函数
- 同时调用js函数yui
- 提交按钮的点击元素不调用JS函数
- 使用onclick和javascript函数,在参数中调用js-var
- 在另一个.js文件中调用js函数
- 使用grunt在angular指令中调用js文件
- 在JS文件中设置延迟以调用JS文件