当使用ckeditor控件时,需要校验输入内容是否为空的一种解决办法(转帖)_网页编辑器

fckeditor 验证内容是否为空 fckeditor Js验证表单
原来的代码代码如下

复制代码 代码如下:

<script language = "javascript">
<!--
function checkForm(){
if (document.form1.content.value==""){
alert("请输入内容!");
return false;
}
return true;
}
//-->
</script>
<form name="form1" method="post" action="" onsubmit="return checkForm();">
<FCK:editor id="content" basePath="fckeditor/" height="350" >
</FCK:editor>
<input type="submit" name="Submit" value="发布">
</form>

这样是我们写程序中最经常的写法 提交之前进行验证内容是否为空!
使用了编辑器以后 在第一次按提交按钮的时候 总是获取不到编辑器的值 内容已经输入 可是content并没有任何值!需要我们再次点提交按钮 content 才能获取到值!
对于这个问题 好多人都觉得困惑!有写是用JS去读取输入域中的HTML内容!可是这只对全JS版本的fckeditor 才有效果 对 JSP版本的 并不起作用!对于这样的状态 也只能怪fckeditor开发者了!而代码太多太麻烦 想要修改其核心谈何容易!
本人经过不断的测试 现得到一个方法可以解决次问题!先拿出来大家分享
改写代码如下

复制代码 代码如下:

<script language = "javascript">
<!--
function checkForm(){
setTimeout("SendForm()",50);
return false;
}
function SendForm(){
if (document.form1.content.value==""){
alert("请输入内容!");
return;
}
document.form1.submit();
}
//-->
</script>
<form name="form1" method="post" action="" onsubmit="return checkForm();">
<FCK:editor id="content" basePath="fckeditor/" height="350" >
</FCK:editor>
<input type="submit" name="Submit" value="发布">
</form>

修改成这样的目的是因为编辑器已经监视了onsubmit这个事件 是要在提交以后才把跟新的内容置入隐藏域content 中,原先的来不及置入内容便已经执行了验证事件所以当然取不到及时的内容!

//==============================================

以上内容为转帖,不过经过我实际工作的检验,有效。

时间: 2024-09-29 12:54:16

当使用ckeditor控件时,需要校验输入内容是否为空的一种解决办法(转帖)_网页编辑器的相关文章

Linux执行.sh文件时提示No such file or directory该怎么办(三种解决办法)_linux shell

先给大家看下问题描述,下图是我在运行时出现错误截图: 解决方法 分析原因,可能因为我平台迁移碰到权限问题我们来进行权限转换 1)在Windows下转换: 利用一些编辑器如UltraEdit或EditPlus等工具先将脚本编码转换,再放到Linux中执行.转换方式如下(UltraEdit):File-->Conversions-->DOS->UNIX即可. 2)方法 用vim打开该sh文件,输入: [plain] :set ff  回车,显示fileformat=dos,重新设置下文件格式

ASP.net中动态加载控件时一些问题的总结

asp.net|动态|加载|控件|问题 经常见到有人说在ASP.net中不要使用动态控件,我想主要的原因在于使用动态控件会带来一些问题,在做项目的过程中,我将由动态加载控件引发的总是作了一个小小的总结.1 .在使用LoadControl加载控件后,用户控件中的某些控件不再响应事件. 这个问题主要是由于将控件加载放在if (!Page.IsPostBack)之内引起的,放在外面即可.在思归的blog上对此问题进行了详细的说明.2.用户控件中某些控件的响应出现问题,如某个按钮第一次选择时不触发CLI

如何解决“呈现控件时出错”的问题

在制作控件的时候容易遇到" 呈现控件时出错"" 发生了未处理的异常.未将对象引用设置到对象 的实例." 这样的错误,如下图:( 也有可能仅仅只是因为未设置runat="server" 标签而导致该错误, 请先检查该项.) 但是在编译时/ 运行时也都是没有错误的. 分析 如图所示的情况我们称之为" 设计时" 以区别于" 编译时"/" 运行时" . 设计时 :在ASP.NET 环境中也就是当

单击Button控件时,以对话框的形式弹出用户在TextBox中输入的值

问题描述 单击Button控件时,以对话框的形式弹出用户在TextBox中输入的值 新建一个aspx页面,命名为Alert.aspx,在页面添加一个TextBox控件和一个Button控件,当用户单击Button控件时,以对话框的形式弹出用户在TextBox中输入的值. 解决方案 在按钮里面写 ClientScript.RegisterClientScriptBlock(GetType(), "sas", "<script> alert('" + Tex

javascript-js中使用select控件时需要加上form吗?

问题描述 js中使用select控件时需要加上form吗? 在页面中,有表单form1 里面有一个select控件 名称为category.而在js中设置select时,如果document.category.options[tt]=new Option(""""");就无法创建成功. 但是使用document.form1.category.options[tt]=new Option(""""");就可以

jsp-Struts中有没有办法在渲染每个UI控件时都执行一段代码

问题描述 Struts中有没有办法在渲染每个UI控件时都执行一段代码 我有这么个需求:希望能通过数据库配置来指定每个页面上的每个UI控件是否最终显示出来.表结构例如: page | component_id | is_display 有什么办法能够加个拦截器之类的东西,在Struts渲染每个UI控件之前能执行这个拦截器,在拦截器里能取到当前被渲染的控件对象,并修改控件对象的属性吗? 我只知道Struts有Interceptor,但貌似只是拦截后台Action的,不知道是不是能处理UI控件. 请各

mfc对话框-在MFC对话框中添加自己编写的OCX控件时出错

问题描述 在MFC对话框中添加自己编写的OCX控件时出错 在MFC工具箱中添加自己编写的OCX然后把控件拖拽到对话框中添加,弹出错误信息提示: Debug Assertion Failed!Program:...les(x86)Microsoft Visual Studio10.0Common7IDEdevenv/.exeFile:fddvctoolsvc7libsshipatlmfcsrcmfcwinocc.cppLine:307 然后点忽略,后运行时可以出现OCX但是这个错误是怎么回事呢 解

c# aspx h-创建控件时出错,对COM组件的调用返回了错误 HRESULT E_FAIL

问题描述 创建控件时出错,对COM组件的调用返回了错误 HRESULT E_FAIL 问题背景为: 打开已有的web工程,所有的aspx设计页面空间都是报"创建控件时出错,对COM组件的调用返回了错误 HRESULT E-fail"的错误,无法进行编辑,但通过vs2013新建web工程,然后把代码赋值过去后打开能正常看到控件,由于是同一客户机打开一种不能显示,一种可以正常显示,所以应该不是权限设置的问题,希望大神帮忙分析一下,谢谢! 解决方案 强制你的程序编译为32bit看看.可能是你

自定义WEB控件时,自定义的事件无法触发,麻烦大家帮我看看

问题描述 <DefaultProperty("Text"),ToolboxData("<{0}:NewDataGridrunat=server></{0}:NewDataGrid>")>PublicClassNewDataGridInheritsSystem.Web.UI.WebControls.WebControlPublicEventBindMyGrid(ByValsenderAsObject,ByValeAsSystem.E