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>

この関数は、標準のjQuery $.ajaxajaxForm()関数に渡すことができるすべてのオプション (コールバック関数など) もサポートしています。

于 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()
 });

すべてのフォーム vars を取得し、それらをシリアル化してサーバーが受信できるようにする必要があります。戻り値 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 に答える