在coldfusion中检查多个表单以在同一页面上提交

Bri*_*Bri 4 forms coldfusion

你好再次stackoverflow ...

我再一次遇到麻烦的问题.我有一个页面,我使用jQuery选项卡分割三个更新表单.(两个真的,一个是cfgrid所以它实际上并不重要.)基本上,当你提交第一个表单选项卡时,它很好.但是,如果您提交最后一个表单,它会提交并刷新页面,但不会更新任何内容.

我已经确定它与识别提交的表单有关.

注意:这些表单正在提交给他们所在的同一页面,所以我使用的方法是:

<cfif isdefined("form.submit")>
//database stuff etc
</cfif>
Run Code Online (Sandbox Code Playgroud)

我最后通过这样做提交表格:

<input type="submit" name="submit" id="button"  value="Save Changes" onclick = "form.submit()" />
Run Code Online (Sandbox Code Playgroud)

在确定它有什么与识别提交哪个表单之后,我将按钮更改为:

<input type="submit" name="submit" id="button"  value="Save Changes" onclick = "document.forms["form3"].submit()" />
Run Code Online (Sandbox Code Playgroud)

我不确定这是否是最有效的方法...而且我不确定如何在coldfusion部分提交form3 ...我试过:

<cfif isdefined("form3.submit")>
Run Code Online (Sandbox Code Playgroud)

但这不起作用.它不遵循代码.

注意:我正在使用coldfusion 8.此外,使用CFAJAX标签是有限的,因为我们的ITS部门没有在服务器上正确设置coldfusion ......他们不相信我.因此,我很乐意以这种奇怪的方式做到这一点.它只支持cfgrid一些奇怪的原因......

Pet*_*ton 8

ColdFusion(也不是任何服务器端语言)不知道您的表单可能具有哪些ID - 它只知道您通过输入(和/ textarea/etc)字段提交的内容,并将其放在表单范围内.

要做你想做的事,你需要有以下方面的形式:

<form>
    ....
    <input type="submit" name="submit1" value="Save Changes"/>
</form>

<form>
    ....
    <input type="submit" name="submit3" value="Save Changes"/>
</form>
Run Code Online (Sandbox Code Playgroud)

然后在CF端你检查它是哪个表格:

<cfif StructKeyExists(Form,'Submit1')>
...
</cfif>
Run Code Online (Sandbox Code Playgroud)

要么

<cfif StructKeyExists(Form,'Submit3')>
...
</cfif>
Run Code Online (Sandbox Code Playgroud)