如何确保提交表单时未显示另一个(新)页面
How to make sure another (new) page is not shown when submitting a form
对于赋值,我需要有一个由通过AJAX GET请求从服务器获取的JSON数据组成的表。此外,我还必须有一个额外的行才能填写一些额外的数据,这些数据必须添加到我发出 AJAX GET 请求的服务器中,我通过使用 AJAX POST 请求来做到这一点。这两件事我都能够做到,所以我现在有一个表格,显示来自服务器的数据,你也可以向其中添加数据。但问题是,当我单击"提交"按钮时,将加载另一个页面,显示为添加到服务器的数据而制作的新URL。我只想将数据添加到表中,而不打开新页面。我已经看到一些带有
您必须通过使用
$("form").submit(function(){ return false; });
只需添加
return false;
在函数结束之前
例如:
function(){
//all function srcripts
return false;
}
在您的情况下,它应该是这样的:
function(data){
var tr;
for (var i = 0; i < data.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + data[i].name + "</td>");
tr.append("<td>" + data[i].category + "</td>");
tr.append("<td>" + data[i].amount + "</td>");
tr.append("<td>" + data[i].location + "</td>");
tr.append("<td>" + data[i].date + "</td>");
$('#table_one').append(tr);
return false;
}
您可以通过
阻止默认行为来确保表单实际上不会提交到"URL given",但是您必须使用JS/jQuery对表单执行任何操作。
$('#form').submit(function(e){
e.preventDefault();
//do your stuff here
$.ajax(){
url: '%url%',
method: 'POST',
data: {datafromform}
}.success(msg){
console.log(msg)
}
})
尝试这样的事情,您会在服务器端获得回显 JSON 数据,因此在 PHP 中您添加的结果:
echo $jsonizedData;
die();
所以在消息中,现在您将从 PHP 文件中返回 JSON 数据
我已经能够使用以下代码解决此问题:
var url = '%url%
var tabinithtml = '';
function fillTable() {
$('#table_one').html(tabinithtml);
$.getJSON(url,
function(data){
var tr;
for (var i = 0; i < data.length; i++) {
tr = $('<tr/>');
tr.append("<td>" + data[i].name + "</td>");
tr.append("<td>" + data[i].category + "</td>");
tr.append("<td>" + data[i].amount + "</td>");
tr.append("<td>" + data[i].location + "</td>");
tr.append("<td>" + data[i].date + "</td>");
tr.sort
$('#table_one').append(tr);
}
});
}
function insertRecord() {
$.post( url,
$( "#form" ).serialize()
);
}
$( document ).ready(function() {
tabinithtml = $('#table_one').html();
fillTable();
$('#form').submit(function(e) {
e.preventDefault();
insertRecord();
fillTable();
return false;
});
});
相关文章:
- AngularJs|Don'在成功加载所有指令htmls之前,不显示页面
- 如何仅在横向模式下显示页面
- 突出显示页面上嵌入的iframe中的单词
- 仅显示页面AngularJS上的特定选项卡
- 在显示页面之前使用 jquery ajax 加载图像和声音
- 显示页面一旦完全加载涡轮链接
- jQuery移动显示页面5秒钟,然后重定向
- 启用面板向左滚动时,如何在左侧部分显示页面
- Twitter引导选项卡显示页面加载时未触发事件
- Chart.js显示页面加载时的工具提示
- 当单击按钮时,隐藏已显示页面加载的段落
- 如何在后台加载图像,然后在完成后显示页面
- 如何让 JQuery 在显示页面之前交换图片
- 如何在页面完成加载之前显示页面加载 html 文件
- 在模式窗口中显示页面上单击的值(链接)以及索引值
- 在文本区域中显示页面行
- 在谷歌阿贾克斯中显示页面加载微调器
- 在页面之间显示“页面加载”消息
- 记录单击的链接,然后在框中显示页面名称作为历史记录
- 如何在表单域中显示页面标题