2013-04-03 129 views
0

點擊提交按鈕時,我試圖抓住提交併做一個快速的AJAX請求,看看錶單中指定的時間和日期是否已經存在預訂。如果是,請停止提交表單並提醒用戶預訂日期和時間已經存在!如果沒有預訂,請繼續並提交表格。對於我的生活,我不能讓.preventDefault工作,除非我把它放在提交函數的末尾。任何想法和指針都非常感謝,我一直堅持了三個小時,似乎並沒有得到任何快速。我99%肯定我只是一個白癡,所以提前道歉!Jquery:無法讓.preventDefault工作

這裏是我的代碼:

$('#formID').submit(function(event){ 

      var InspectionDate = $('#datepicker').val().split('/'); 
      InspectionDate.reverse(); 
      InspectionDate = InspectionDate.join('-'); 
      InspectionHour = $('#time_hour').val(); 
      InspectionMinutes = $('#time_minutes').val(); 
      var InspectionDateTime = InspectionDate + ' ' + InspectionHour + ':' + InspectionMinutes + ':00'; 
      $.ajax({ 
       type: "POST", 
       url: "ajax_booking_check.php", 
       data: 'InspectionDateTime='+ InspectionDateTime, 
       cache: false, 
       success: function(response){ 
       if(response = 1){ 
       alert("An appointment for the selected Date and Time already exists.\n\nDouble Bookings are not possible.\n\nPlease refer to the calender to find an available appointment."); 
       event.preventDefault(); 
       } 
       else{ 
       //submit form 
       } 
       } 
      }); 
     }); 
+0

你是如何使用preventDefault的? – karthikr 2013-04-03 20:54:23

+0

抱歉,不確定你的意思是我如何使用preventDefault? – 2013-04-03 20:56:32

+0

抱歉..忘了刪除這條評論..看到它在成功回撥 – karthikr 2013-04-03 20:57:58

回答

0

放置的preventDefault作爲第一行,那麼如果您希望表單提交,請在表單元素上調用submit方法。通過調用表單元素的submit方法而不是jQuery定義的方法,它將繞過jQuery綁定提交事件處理程序。

$('#formID').submit(function (event) { 
    event.preventDefault(); 
    var form = this; 
    var InspectionDate = $('#datepicker').val().split('/'); 
    InspectionDate.reverse(); 
    InspectionDate = InspectionDate.join('-'); 
    InspectionHour = $('#time_hour').val(); 
    InspectionMinutes = $('#time_minutes').val(); 
    var InspectionDateTime = InspectionDate + ' ' + InspectionHour + ':' + InspectionMinutes + ':00'; 
    $.ajax({ 
     type: "POST", 
     url: "ajax_booking_check.php", 
     data: 'InspectionDateTime=' + InspectionDateTime, 
     cache: false, 
     success: function (response) { 
      if (response = 1) { 
       alert("An appointment for the selected Date and Time already exists.\n\nDouble Bookings are not possible.\n\nPlease refer to the calender to find an available appointment."); 
      } else { 
       form.submit(); 
      } 
     } 
    }); 
}); 
+0

謝謝凱文......我知道這會很簡單!非常感激。 – 2013-04-03 21:00:11

2

你需要把event.preventDefault在方法的開始,而不是在成功回調

$('#formID').submit(function(event){ 
    event.preventDefault(); 
    var InspectionDate = $('#datepicker').val().split('/'); 
    ... 
}); 
+0

乾杯!現在明白了,知道這將是簡單的事情。 – 2013-04-03 21:01:04