2017-04-24 53 views
1

我有我試圖防止多次提交表單:表單提交不通過按鈕名稱

<form id="autoSumForm" name="autoSumForm" method="post" action="add_ticket.cfm" enctype="multipart/form-data" > 

的形式有兩種保存按鈕:

<input class="saveButton" tabindex="0" type="submit" name="save2" id="save2" value="Save This Ticket" disabled="true" onclick="this.disabled=true;this.value='Please Wait...'; this.form.submit();"/> 

<input class="saveCloseButton" tabindex="0" type="submit" name="save1" id="save1" value="Save and Close" disabled="true" /><!---Save and close ticket ---> 

我有這樣的腳本,我我正在使用一旦點擊按鈕來禁用和更改按鈕的值。

<!--- Prevents submitting form twice ---> 
     $('#autoSumForm').submit(function() 
      { 
      $("input[type='submit']", this) 
      .val("Please Wait...") 
      .attr('disabled', 'disabled'); 
      return true; 
     }); 

但奇怪的是,當我使用該腳本時,它不會將按鈕名稱傳遞給我的操作頁面。我知道,因爲我使用if語句來檢查點擊了哪個提交按鈕,所以我可以正確重定向。如果我禁用腳本的重定向工作正常,但啓用時,它跳過我的if語句。會導致什麼?

這是我的我重定向if語句:

<cfif StructKeyExists(form,"save1")> 
    <!---Send user back to tech view screen ---> 

    <!--- Updated Ticket Lock Fields in Service_Ticket table---> 
     <cfquery name="ticket_lock_update" datasource="#datasource#"> 
     update service_ticket 
     set edit_lock=0, last_edited=<CFQUERYPARAM Value="#CreateODBCDateTime(Now())#" cfsqltype="CF_SQL_TIMESTAMP">, last_edited_by=<CFQUERYPARAM Value="#techID#"> 
     where ticket_id= <CFQUERYPARAM Value="#form.ticket_id#"> 
     </cfquery> 

    <cflocation url="dashboard.cfm">  
</cfif> 

<cfif StructKeyExists(form,"save2")> 
    <!---Save ticket and send user back to the same ticket screen ---> 

    <!--- Updated Ticket Lock Fields in Service_Ticket table---> 
     <cfquery name="ticket_lock_update" datasource="#datasource#"> 
     update service_ticket 
     set edit_lock=1, last_edited=<CFQUERYPARAM Value="#CreateODBCDateTime(Now())#" cfsqltype="CF_SQL_TIMESTAMP">, last_edited_by=<CFQUERYPARAM Value="#techID#"> 
     where ticket_id= <CFQUERYPARAM Value="#form.ticket_id#"> 
     </cfquery> 

    <cflocation url="edit_serviceticket.cfm?ticketID=#form.ticket_id#&techID=#techID#&message=2&TT=bot">  
</cfif> 
+0

爲什麼會這樣? –

+0

你使用什麼瀏覽器?我有類似的東西,但只有在safari – luke

+1

更新:從一些測試中,我發現,如果我刪除禁用該按鈕的腳本的部分,它按照設計工作。因此禁用按鈕不會傳遞按鈕的ID或名稱。有沒有不同的方法來禁用按鈕? –

回答

1

隱藏字段添加到您的窗體。添加一些東西給你的提交函數,給它一個合適的值。在您的操作頁面上處理該字段。