这个原因是文本框调用了uedit,所以我们写入的内容,其中的length属性没有任何效果,
需要通过uedit的api接口getContentLength()才能真正获得输入内容的长度。
为了解掉这个问题,我需要修改三个文件:
1.task\***\tpl\default\step2.htm
在form pubTaskForm2中添加一个看不见的控件用于与php通信
<input type="hidden" name="tar_content_length" id="tar_content_length">
2.tpl\default\pubtask.htm
在function isAgreementChecked()函数中添加
var tar_content_length = document.getElementById("tar_content_length");
tar_content_length.value = ue.getContentLength(true);
以获取uedit的内容并赋值给隐藏的控件tar_content_length。
3.task\***\control\pub.php
在step2分支中的判断submitcheck的if中添加
if (trim($_POST['tar_content_length']) < 20)
{
$tips['errors']['tar_content'] = '内容不得少于20字';
kekezu::show_msg($tips,NULL,NULL,NULL,'error');
}
附件是我写完后的patch。
这个方案的不足就是利用的php作的最终判断,由于我的js初学,无法移植他到js上去。需要通过服务器处理才能卡住。
所以如果你们找到了通过本地js文件卡关的方式,请务必通知我,方便我修改,这样能减少服务器的压力。
我的网站是梦航网www.dream-launching.com,你们可以试试效果。
by the way,客客有没有什么反馈bug并修复bug有奖的活动啊,我也差不多给你们报了并帮你们修复了5-6个bug了。介不介意送个授权什么的鼓励一下不。
|
|