为什么Form表单的自定义验证失效了

 我来答
DoramiHe
2018-03-30 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25335 获赞数:59536
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
很多时候,需要对Yii表单model中的对象设置的rules进行判断,但是有的时候可能需要在提交之前就在客户端进行验证,我这边设置的方法是在提交按钮上设置监听器,如果部分内容为空(比如多选按钮没有选择),那么提示出错信息。主要目的是页面不用提交后刷新,进入controller的对应函数之后再判断出错。显示rules()验证规则函数的错误信息。

这里为了验证是否选择某个单选按钮,对提交的按钮onclick设置监听,具体如下
<Button onclick = "return fun()"/>
自定义fun()函数,需要有return true和false两种情况
<script> function fun(){ var CheckBox = document.getElementsByName('checkBox[]');//获取所有的checkBox var count=0; for(i=0;i < CheckBox.length;i++){ if(CheckBox[i].checked == true){ count++; } } if(count == 0 ){ var errorMeg = document.getElementById('HomeworkTrConfig_flag_em_'); errorMeg.style.display = ""; errorMeg.innerHTML="请至少选择一项"; return false; }else{ return true; } } </script>
补充:Yii表单验证中,提交前验证,不通过不提交

以前记得有这么一个写法,就是当表单中的内容不符合验证规则时,会不允许提交,时间一长忘了怎么写了,手册里面也没写,查了一下资料,做一下笔记 :
$form = $this->beginWidget('CActiveForm',array( 'id' => 'add_host', 'enableAjaxValidation' => false, 'enableClientValidation' => true, 'clientOptions' => array( 'validateOnSubmit' => true //在这个位置做验证 ), 'focus' => array($model,'ip') )); ?>
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式