2009-07-17 10 views
1

DB内のテーブルに項目を追加するために使用する入力ボックスがあります。jquery内のテーブルに項目を追加する

それは次のようになります。

<td> 
    <form class="insCat" action="#" name="insertCat"> 
    <input name="categorienaam" type="text"> 
    <input class="insert" type="submit" value="nieuwe categorie"> 
    </form> 
</td> 

と私はjqueryの中で、このよう

jQuery(".insert").click(function(){ 

    str = jQuery("form.insCat").serialize(); 
    console.log(str); 

    jQuery.ajax({ 
    type: "POST", 
    data: str + "&cmd=insert", 
    url: "ajax_handler.php", 
    success: function(msg){} 
    }); 

    jQuery("div.result").empty(); 

}); 

をそれを扱う。しかし、ページが各挿入後に更新されますので、私は私のログには何も見えません。私は欲しくない。

これには方法がありますか?

答えて

4

あなたは送信ボタンのデフォルトのイベントを防ぐために必要があります。

jQuery(".insert").click(function(e){ 
      e.preventDefault(); 

      ...your code...  

      return false; 
    }); 
3

あなたが送信ボタンにイベントハンドラをアタッチし、デフォルトのイベントの実行を停止されていません。 JSが実行され、フォームが正常に送信されます。

まず、フォームがJSなしで送信された場合、「#」(ページの上部へのリンク)よりも賢明なアクションを設定します。

次に、ボタンではなくフォームにイベントを添付します。そうすれば、他の手段(例えば、入力キーがテキスト入力で押されているなど)によって送信されても​​、それは引き続き機能します。

jQuery("form.insCat").bind("submit", yourFunction); 

次に、デフォルトのイベント処理を停止するように関数を編集します。

var yourFunction = function(event){ 
    // do whatever you like then... 
    event.preventDefault(); 
}; 
関連する問題