在firefox 3.5中cakePhp和嵌套ajax表单的问题

时间:2009-07-28 08:46:48

标签: ajax firefox cakephp forms nested

是否可以在cakephp和firefox中使用嵌套的ajax表单? 即。

$ajax->form(form1...)
   table
     row
       $ajax->form(childForm_rowId)
       $form->end(childForm_rowId)
     endrow
   end table
$form->end

我发现这适用于IE7,但不适用于Firefox 3.5.1 Firefox将省略childForm声明,因此子表单(childForm_rowId)将在提交时使用第一个表单(form1)操作,这不是我们想要的。

我知道如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

将多个FORM元素嵌套在一起<​​strong>无效HTML 。

我强烈建议您重新考虑您的策略。

  • 如果您只是为显示目的而这样做,您可以通过CSS和定位实现类似的效果。
  • 如果您希望内部表单“扩展”外部表单并使用它的属性/输入,那么您需要在javascript中使用自定义表单处理函数

答案 1 :(得分:0)

您无法嵌套表单,就像那样简单。当此角色被破坏时,不同浏览器的反应不同。根据您的需要,您必须自定义Javascripting,而不需要嵌套表单。

答案 2 :(得分:0)

可悲的是,我尝试做类似的事情,并在FF 3.5.1中得到了相同的结果。我没有嵌套我的表单,但只是通过AJAX和FF 3.5.1向页面添加了一个表单仍然省略了第二个表单声明。在所有其他测试的浏览器中,包括其他版本的FF,它看起来像这样:

<div><form><input /><input /></form></div>
<div><form><input /><input /></form></div>

但在FF 3.5.1中它出现了这样:

<div><form><input /><input /></form></div>
<div><input /><input /></form></div>

我仍然在寻找解决方案,因为8%的访问者使用3.5.1,幸运的是,第一种形式的操作并不是非常不受欢迎,但需要额外的点击才能做同样的事情。 / p>