2011-10-18 14 views
0

jQuery AJAXコードは、ページリフレッシュなしでフォームを送信する必要がありますが、何らかの理由で無視され、フォームが正常に送信されています。jQuery ajaxフォームはまだページリフレッシュで送信されます

のjQueryコード:

$(".createEvent").live('click', function() { 

       $(".eventResult").html($("<img/>").attr("src", "<?php echo __FULL_PATH; ?>images/loader.gif").attr("id", "loader")); 
       $('.eventResult').show(); 
       var form = $(this).parents('form:first'); 
       var eventName = $("input[name='eventName']",form).val(); 
       var eventID = $("input[name='eventName']",form).id(); 

        var dataString = 'eventName ='+ eventName; 
        $.ajax({ 
        type: "POST", 
        url: "{site.createPageURL}"+eventID+"/event/", 
        data: dataString, 
        cache: false, 
        success: function(html) { 
        alert('done'); 
        $('.eventResult').html(html); 
        $('.eventForm').hide(); 
        updateBookingList(eventID);    

        } 
       }); 
       return false; 

     }); 

とフォーム:

<form id="eventForm_1318915800" method="POST" action="path_here..." name="eventForm"> 
<label for="eventName">Please enter a name for the event</label> 
<input id="1318915800" type="text" name="eventName"> 
<label for="submit">&nbsp;</label> 
<input class="createEvent" type="submit" value="Create event" name="submit"> 
</form> 
<div id="eventResult_1318915800" class="eventResult">&nbsp;</div> 
+0

リダイレクトまたはリフレッシュについては、関数updateBookingList(eventID)を確認してください。 – Prasanth

答えて

2

これは途中でJSエラーの指標である - あなたが追加する必要がありますreturn false

+0

完璧です、まさにこれが起こっています。ありがとうございました - 実際には、FirebugがJavascriptエラーを起こす可能性があることを知りませんでしたので、結果として非常に便利なデバッグ方法を手に入れることができました。 – Amo

2

をバイパスajaxを呼び出す前にevent.preventDefault();。あなたの関数は、以下のように変更する必要があります。

$(".createEvent").live('click', function(event) { 
    event.preventDefault(); 
    . 
    . 
    . 
    //ajaxCall 
}); 
+0

+1の場合はpreventDefault()が返されます。 –

+0

これはキーボードからトリガーされた送信を妨げません。 – njr101

+1

$( "#eventForm_1318915800")を使用する方が良いlive( 'submit'、function(){}) –

2

あなたを提出するフォームを停止する場合は、おそらくより良いやっている:

$("#eventForm_1318915800").submit(function() { return false; }); 

、それはまた、入力によってトリガ提出処理しますので、これは良いです例えばキー。

関連する問題