我有一个表单,我试图阻止多个提交:
<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 :(得分:1)
在表单中添加隐藏字段。在提交函数中添加一些内容,使其具有适当的值。在您的操作页面上处理该字段。