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>
爲什麼會這樣? –
你使用什麼瀏覽器?我有類似的東西,但只有在safari – luke
更新:從一些測試中,我發現,如果我刪除禁用該按鈕的腳本的部分,它按照設計工作。因此禁用按鈕不會傳遞按鈕的ID或名稱。有沒有不同的方法來禁用按鈕? –