如何覆盖现有的html表单以使用jquery发布表单?

时间:2010-06-03 14:52:43

标签: javascript jquery ajax

我有一个简单的表单,我目前正在发回服务器以更新昵称。我添加了什么jquery代码(不更改表单),以便页面不会刷新,而是jquery会在后台发布表单,然后弹出一条包含服务器回复的警告消息?

<form method="post" action="http://www.myserver.com/update_nickname" name="input">
    Quick form to test update_nickname:<br>
    New nickname:<input type="text" value="BigJoe" name="newNickname"><br>
    <input type="submit" value="Submit">
</form>

<script src="jquery-1.4.2.min.js" type="text/javascript"> </script>

3 个答案:

答案 0 :(得分:25)

try reading this.

$("form").submit(function(e){
    var form = $(this);
    $.ajax({ 
         url   : form.attr('action'),
         type  : form.attr('method'),
         data  : form.serialize(), // data to be submitted
         success: function(response){
            alert(response); // do what you like with the response
         }
    });
    return false;
 });

答案 1 :(得分:5)

您需要使用jQuery绑定到“submit”事件并阻止默认操作。如果您的表单和昵称输入除了名称之外还使用id,那么效率会更高一些:

<script type="text/javascript">
    jQuery(function($){
      $("form[name=input]").submit(function(e){
        e.preventDefault(); // Keep the form from submitting
        var form = $(this);

        // Use the POST method to post to the same url as
        // the real form, passing in newNickname as the only 
        // data content
        $.post( form.attr('action'), { newNickname: form.find(':text').val() }, function(data){
          alert(data); // Alert the return from the server
        }, "text" );
      });
    });
</script>

答案 2 :(得分:1)

这是一个插件。

http://jquery.malsup.com/form/