欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

yii form 表单提交之前JS在提交按钮的验证方法

程序员文章站 2023-03-29 18:22:38
 很多时候,需要对yii表单model中的对象设置的rules进行判断,但是有的时候可能需要在提交之前就在客户端进行验证,我这边设置的方法是在提交按钮上设置监听器...

 很多时候,需要对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')
  ));
?>

以上所述是小编给大家介绍的yii form 表单提交之前js在提交按钮的验证方法,希望对大家有所帮助