zoukankan      html  css  js  c++  java
  • phpcms v9中formvalidator无法验证时间插件返回的数据解决办法

    在phpcms中,会引用formvalidator来验证表单,会用 Dynarch Calendar来做时间插件,但是当这两种结合起来的时候,就会出现一个问题

    问题是这样的,当选择input时间框的时候,弹出日期选择层,选择完之后, Dynarch Calendar会把时间数值直接赋值给被点击的input框,但是这个input框不会获得焦点,所以在不获得焦点的时候formvalidator就无法验证时间数据,就会造成,明明已经选择了时间,但是formvalidator还是提示,时间未添加。

    在找解决办法的时候,发现Dynarch Calendar官网介绍说,这个插件有一个函数叫onchange,于是我就从这个函数下手,在onchange的时候,给input框一个focus(),在添加完之后,又发现一个问题,这样写的话,在chrome中没问题,但是在ie8中会报错,因为我一个页面当中有多个日期选择,有一些是display:none的状态,这样的话,ie8中会报错。所以我就又修改了下代码

    代码如下,代码所在文件在phpcms/libs/classes/form.class.php 208行附近添加

    $str .= '<script type="text/javascript">
                Calendar.setup({
                weekNumbers: '.$showweek.',
                inputField : "'.$id.'",
                trigger    : "'.$id.'",
                dateFormat: "'.$format.'",
                showTime: '.$showsTime.',
                minuteStep: 1,
                onSelect   : function() {this.hide();},
                onChange : function (cal){
                      try
                    {
                      document.getElementById("'.$id.'").focus();
                    }
                    catch(err)
                    {
                       
                    }
                }
                });
                
            </script>';

    这样的话,就解决了在ie和chrome中formvalidator无法验证的问题。

  • 相关阅读:
    如何修改tomcat默认端口号8080的方法
    mybatis中的一对多
    mysql中left join设置条件在on与where时的用法区别分析
    登录不会走自定义的FormAuthenticationFilter及其onLoginSuccess原因
    (六)SpringIoc之延时加载
    (五)SpringIoc之Bean的作用域
    (三)SpringIoc之初了解
    (二)Spring容器
    (一)Spring之初了解
    值传递和引用传递
  • 原文地址:https://www.cnblogs.com/youxu/p/3158231.html
Copyright © 2011-2022 走看看