2017-07-11 5 views
0

私はすでにajaxを使用してhtmlフォームを投稿する2つの方法を知っています。例えばJSまたはAJAXを使用したHTMLフォームPOST

..

<script src="http://code.jquery.com/jquery-1.9.1.js"></script> 
    <script type='text/javascript'> 
    /* attach a submit handler to the form */ 
     $("#clientInfo").submit(function(event) { 
      message = $('#name').val(); 
     /* stop form from submitting normally */ 
     event.preventDefault(); 
     var $form = $(this), 
      url = 'post2.php'; 

     /* Send the data using post with element id name and name2*/ 
     var posting = $.post(url, { message: message }); 



    }); 
</script> 

正常に動作しますが、それは唯一私が実際に提出からページを停止しますevent.preventDefault()を呼び出す場合、

リターン偽も可能性が動作します中古。

私の問題は、実際の提出を止めることなく投稿できますか? event.preventDefault()を必要とせずにfalseを返しますか?私はページを正常に提出したいが、それが起こっている間にいくつかのデータを投稿する必要がある。

お願いします。

+0

は本当に意味がありません。 'action'と' method'がフォームに設定され、 'name'が入力にある場合、ajaxの必要はありません。フォームは '$。post 'と同じフォーマットでデータを送信します。 – charlietfl

+0

postはサーバと通信する方法です。 Inorderを送信するには、httpメソッドが必要です –

答えて

1

event.preventDefault()は、送信時に別のURLまたはページにナビゲートするためのフォーム要素のデフォルト動作を防止するために使用されます。必要に応じて、手動で別のページに移動できます。さもなければ、preventDefaultはajax(非同期js)が効果的に使用できるようにアクションページを維持するのに使用されます。

0

私はあなたがやろうとしているかわからないんだけど、多分あなたはデフォルト

  • を防ぐ

    1. でそれを行うことができますが、JSによって再び提出してデータ
    2. を送ります。

    このような何か:

    //the namespace of event would help the unbinding after 
    $("#clientInfo").bind('submit.waitSubmittion', function(event) { 
        message = $('#name').val(); 
    
        event.preventDefault(); 
        var $form = $(this), 
         url = 'post2.php'; 
    
        /* Send the data using post with element id name and name2*/ 
        var posting = $.post(url, { message: message }, function(){ 
         //after we sure the call made, 
         //unbind our event (including prevent default) and submit the form 
         $form.unbind('submit.waitSubmittion').trigger('submit') 
        }); 
    
    
    
    }); 
    
  • 0

    これを試してみてください。

    $("#clientInfo").on('submit', function(e) { 
    e.preventDefault(); 
    var data = $(this).serializeArray(); 
    $.ajax({ 
        url : 'whatever.php', // page where you are sending data 
        type : 'post', 
        data : data, 
        success : function(data){ 
        alert(data); // do whatever you want 
        } 
    }); 
    }); 
    
    関連する問題