首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AJAX / jQuery表单提交shoutbox

AJAX / jQuery表单提交shoutbox
EN

Stack Overflow用户
提问于 2012-01-09 15:16:58
回答 4查看 437关注 0票数 2

我正在创建一个简单的shoutbox,其中用户提交一个表单,表单通过PHP请求传递给jQuery,他们的评论显示在墙上的提要上。

PHP / SQLite部分运行良好,但我在使用AJAX表单时遇到了问题。当我单击提交(post)时,它会在shout.php中正确地处理PHP,但导航窗口也会跳转到shout.php,而它应该留在原始页面上……

HTML表单:

代码语言:javascript
复制
<form id="newPost" action="shout.php" method="post">

Name: <input type="text" id="name" name="name" />

Message: <textarea name="message" id="message"></textarea>

<input type="submit" id="submit" value="Submit" />

</form>

和jQuery:

代码语言:javascript
复制
$("#newPost").submit(function() {


var name = $("#name").val();
var message = $("#message").val();
var data    = 'name='+ name +'&message='+ message;


$.ajax({
    type: "POST",
    url: "shout.php",
    data: data,
    success: function(html) {

        console.log(html);

            refresh_shoutbox();
    }
    });
return false;
});
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-01-09 15:32:25

以下是我对更好的可维护性的建议:

代码语言:javascript
复制
$(document).ready(function () {
  $("#newPost").submit(function(e) {
    $.post({
        $('#newPost').attr('action')
      , $('#newPost').serialize()
      , function(html) {
          console.log(html);
          refresh_shoutbox();
        }
    });
    e.preventDefault();
  });
});
票数 2
EN

Stack Overflow用户

发布于 2012-01-09 15:27:43

尝试不带" action“的表单--因为目前您实际上是通过ajax提交表单,并通过其action属性正常提交表单:

代码语言:javascript
复制
<form id="newPost" action="" method="post">
票数 0
EN

Stack Overflow用户

发布于 2012-01-09 15:30:19

变化

代码语言:javascript
复制
<input type="submit" id="submit" value="Submit" />

代码语言:javascript
复制
<input type="button" id="submit" value="Submit" />

然后改变

代码语言:javascript
复制
$("#newPost").submit(function()

代码语言:javascript
复制
$("#newPost").click(function()

输入的submit类型实际上会通过一个新的http请求提交表单,这就是为什么你的页面之后会变成"shout.php“。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8785051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档