2009-06-18 46 views
0

我試圖用一個表格通過郵寄發送原型Ajax請求的PHP腳本,然後顯示如何使用PHP的Ajax.Request的onsubmit

我目前使用此代碼對成功和失敗的警告窗口

<div id="reservationRequestForm"> 
    <form name="requestReservationForm" method="post" onsubmit="new Ajax.Request('admin/process/process_reservation_request.php', {onSuccess: function() {alert('Success');} , onFailure: function() {alert('Failure');}, method:'post'}; return false;"> 

.... 

    <input type="submit" class="buttonGreen" value="Send Request" onClick="hideDiv('reservationRequestForm');"/> 
    </form> 
</div> 

我不希望響應被處理(無論如何都是空的)。我只想知道它是成功還是失敗。

另外。當js被禁用時,我希望表單能夠優雅地退化。

現在這段代碼什麼都不做。我究竟做錯了什麼?

+0

使用原型而不是jQuery :) – 2009-06-18 23:59:21

+0

你能發佈更多的html嗎?目前發生了什麼?是提交的形式(不應該)? – 2009-06-19 00:02:14

回答

1

如果onsubmit事件沒有被處理,那麼表單沒有被提交。

你在表單中是否有下列其中一項?

<input type='submit' ... /> 

<input type='image' ... /> 

上面的兩個元素點擊(或用space/enter激活)將提交表單。你有onsubmit事件處理程序應該抓住它,並返回false應該停止默認操作(改變頁面)。

而且,你的Ajax.Request調用實際上並不似乎使用任何形式的信息從形式本身。 Ajax.Request需要知道要發送的信息。

編輯 您正在琢磨一個閉合的括號。使用以下內容

<form name="requestReservationForm" method="post" onsubmit="new Ajax.Request('admin/process/process_reservation_request.php', {onSuccess: function() {alert('Success');} , onFailure: function() {alert('Failure');}, method:'post', parameters:Form.serialize(this) }); return false;">