2013-10-25 36 views
0

我使用https://github.com/CakeDC/TinyMCE下载插件,并且确实按照所有步骤集成了我的cakePHP项目。所以,现在,所有的文本区域已成功更改在TinyMCE编辑TinyMCE:cake php插件[无法提交表单]

但是当点击“提交”提交我的形式,页面无法提交和后数据。没有加载编辑器,我的表单可以提交和发布数据。

是否有任何jQuery的问题?请建议我。

谢谢。

Bootsrab.php

CakePlugin::load('TinyMCE'); 
Configure::write('TinyMCE.editorOptions', array('width' => '500px','height'=>'250px')); 

控制器:

public $helpers=array('Html','Form','TinyMCE.TinyMCE'); 

查看:

$this->TinyMCE->editor(array('theme' => 'advanced', 'mode' => 'textareas')); 
echo $this->Form->input('user_requirements',array('required'=>true)); 

布局:默认 装载仪js文件:

echo $this->Html->script(array('ddsmoothmenu','jquery-1.7.1.min','jquery-ui-1.8.17.custom.min')); 
+0

请更新您的问题,您的php代码,所以我们可以知道什么是错的 – elune

+0

@elune嗨,谢谢你的回复。我更新了我的php编码。 – Suba

回答

1

您已将字段设置为required,因此您遇到的问题可能是基于浏览器的表单验证。

问题是验证适用之前 TinyMCE将内容注入到textarea中,因此验证将始终失败,因为textarea为空。这是一个很早就知道“虫” BTW:

http://www.tinymce.com/develop/bugtracker_view.php?id=4768 http://www.tinymce.com/develop/bugtracker_view.php?id=5671

在Firefox中,你可能会注意到,出现“后面”在屏幕的左下角的浏览器验证的泡沫,并在Chrome浏览器例如它会抛出以下错误:“名称='...'的无效窗体控件不可聚焦”。

快速和肮脏的修复将设置requiredfalse。为了保持required类生成的容器上div你就必须设置此使用div选项手动:

'div' => array('class' => 'input text required') 

它也可以通过定义表单上的novalidate属性完全禁用浏览器验证:

$this->Form->create('ModelName', array('novalidate' => true)); 

或使用上的提交按钮formnovalidate属性:

$this->Form->submit('Submit', array('formnovalidate' => true)); 

理论上也可以听到invalid事件并显示自定义验证泡泡,但问题在于浏览器行为不一致,即在Chrome中无法验证不可见(使用displayvisibility)字段。此外,内容仍然会在textarea字段中丢失。

什么似乎工作是使用opacity来隐藏字段,这样可以将textarea放置在编辑器下,并且验证泡泡将被正确显示。然而,这也将需要在textarea的手动进编辑内容时按下输入并点击提交按钮(或者甚至可能使用适当的编辑更改事件简单)时。我会看看我能否稍后提出一个例子。

更新:我实现了在TinyMCE的4.x的插件的形式修复/解决办法,因为这是窃听我在我自己的一些应用来说,看到https://github.com/ndm2/tinymce-validatable