需要提交没有onsubmit的表单并包含操作

时间:2017-11-13 03:40:15

标签: javascript coldfusion form-submit

这是表格

<cfoutput>
<form name    = "xrefform" 
    id        = "xrefform"
    action    = ""
    method    = "post"         
    onsubmit  = "return submitx('#coltop#', '#col#')">
</cfoutput>

有两种不同的提交方式: 1)何时希望将表单中的数据放在MySql表中 2)何时希望从Mysql表中删除数据

对于我的第一个案例

<input type     = "Submit"
        name    = "SubmitXref" 
        class   = "submitbut" 
        value   = "Submit"            
        onclick = "aasubmit('xref2.cfm')">

使用相应的javascript:

 function aasubmit(target) {
   document.xrefform.action = target;
 }//end function aasubmit

这很好用。

对于删除案例我有

<input   type    = "Submit"
         id      = "delbut" 
         class   = "onoffbut" 
         value   = "delete"             
         onclick = "aasubmit('repdel.cfm')">

这有一个问题,即submitx()javascript运行,在这种情况下我不想要它。

我发现使用document.form.submit()方法的引用将避免运行onsubmit函数。但我无法弄清楚如何表明行动。

有人可以告诉我该怎么做吗?

在找到更多的东西后,我找到了答案:

对于删除按钮 - 需要躲避onsubmit脚本 - 这是HTML:

   <input type    = "button"
        id      = "delbut"              
        value   = "Delete this item"
        onclick = "buttonsubmit('xrefdel.cfm', 'xrefform')">

这是javascript。

function buttonsubmit(target, source) {
var q = document.getElementById(source);  
q.action = target;
q.submit();
}

这完美无缺。普通提交遵循onsubmit脚本,删除按钮跳过它。

2 个答案:

答案 0 :(得分:0)

让我们概述您的要求:

  1. 一种形式
  2. 两个提交按钮
  3. 没有提交JavaScript。
  4. 如果您为每个提交按钮添加name,那么您可以拥有一个操作页面并检查单击了哪个按钮。

    name="doUpdate"name="doDelete"

    表单范围中唯一存在的名称键是单击任何提交按钮。使用structKeyExists()进行相应的检查和处理。

    当然,您可能希望使用onsubmit="return validateForm()"来调用验证函数。如果您单击&#34;删除&#34;,您可能希望用户在处理之前确认这是他们想要做的。函数validateForm()只需返回truefalse,因此您仍然可以避开JavaScript submit()

答案 1 :(得分:0)

在表单中执行以下操作:

<input name="action" value="save" id="action" type="hidden"> 
<button type="submit" class="button button-basic-green" onclick="document.getElementById('action').value='save';"><span class="fa fa-save"></span> Save</button>
<button type="submit" class="button button-basic" onclick="document.getElementById('action').value='reload';"><span class="fa fa-repeat"></span> Save &amp; Reload</button>         
<button type="submit" class="button button-basic" onclick="document.location.href='./';return false;"><span class="fa fa-arrow-circle-o-left"></span> Cancel</button>

请注意“保存”的默认操作。得到你像这样的东西: enter image description here

然后在单一的表单 - 操作页面中,检查form.action是什么并相应地处理。

<cfif form.action eq "reload">
    <cfset loc="page.cfm?id=#form.id#">
<cfelse>
    <cfset loc="./">
</cfif>