2

我有一个工作正常的标签表单,通过一些服务器验证,我想添加一个 Jquery 来提交内容而不刷新:

<form method="post" action="tags">
  <div>
        <input type="hidden" name="id" value="getId()" />
        <input type="text" name="tag" />
        <input type="submit" value="Add" name="add" />
    </div>
</form>

任何建议将不胜感激。

4

4 回答 4

2

查看jQuery 表单插件。使用它,您可以提交表单而无需重新加载页面,如下所示:

<form id="aForm" action="target.php" method="post>
    ...
</form>
<script type="text/javascript">
    $(document).ready(function() {
        $("#aForm").ajaxForm();
    });
</script>

ajaxForm()函数还支持可以传递给标准jQuery $.ajax函数的所有选项(例如回调函数)。

于 2012-10-31T02:40:20.753 回答
1
 $(document).ready(function() {
  $(form).submit( function() { // could use $(#submit).on('click', function(){ as well
   $.ajax({
     url: 'yourposturl',
     data: $(form).serialize(),
     Success: function() {
         alert('ok');
     }
   }); //end ajax   

  return false;
   }); //end submit()
 });

应该采用所有形式的变量,将它们序列化以便服务器可以接收,返回 false 是这样页面在提交时不会刷新(停止传播和默认)

于 2012-10-31T02:42:46.533 回答
0

添加 JQuery javascript 库

将提交变成按钮

 <button id="submitbutton" >Add</button>

将 ID 添加到您的输入

<input type="text" id="tag" name="tag" />

并将 jquery 添加到单击按钮...

<script type="text/javascript">
    $(document).ready(function() {
     $("#submitbutton").button().click(function(){
     $.post("tags.php",{id: $("#id").val(), tag: $("#tag").val()});
  });
});
</script>
于 2012-10-31T02:39:40.950 回答
0
<form method="post" action="tags">
  <div>
        <input type="hidden" name="id" value="getId()" />
        <input type="text" name="tag" />
        <input class="button" type="button" value="Add" name="add" />
    </div>
</form>


$(function(){
   $('.button').click(function(){
       var data = $('form').serializeToObject();
       $.post('tags.php', data);
   });
});

// jQuery Extension to serialize a selector's elements to an object
$.fn.serializeToObject = function () {
    var o = {};
    var a = this.serializeArray();

    $.each(a, function () {
        if (o[this.name] !== undefined) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || '');
        } else {
            o[this.name] = this.value || '';
        }
    });
    return o;
};
于 2012-10-31T02:42:44.767 回答