Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个

(function ($) {
    $.messageBox = function (message) {
        $.messager.show({
            title:‘消息框提示‘,
            msg:message,
            showType:‘show‘
        });
    };

    /**
     * 获取时间区间
     * @param type 1:当年的一月一日到现在;type 2:获取当月的第一天和最后一天
     * return {startTime:xxxx,endTime:xxxx}
     */
    $.getTimeInterval = function (type,date){
        var startTime, endTime;
        if (type == 1) {
            var year = new Date();
            startTime = new Date(year.getFullYear(), 0, 1); //年头(xxxx-1-1)
            endTime = new Date();
        }else if(type == 2){
             var y = date.substr(0,4), m = date.substr(4,2);
             startTime = new Date(y,m-1,1).format("yyyy-MM-dd");
             var days = new Date(y,m,0).getDate();
            endTime = new Date(y,m-1,days).format("yyyy-MM-dd");
        }
        return {startTime:startTime, endTime:endTime};
    }

    //防止dialog框拖动时超出父面板,需要在有dialog的页面调用
    $.setDialogPosition = function () {
        var easyuiPanelOnMove = function (left, top) {
            var l = left;
            var t = top;
            if (l < 1) {
                l = 1;
            }
            if (t < 1) {
                t = 1;
            }
            var width = parseInt($(this).parent().css(‘width‘)) + 14;
            var height = parseInt($(this).parent().css(‘height‘)) + 14;
            var right = l + width;
            var buttom = t + height;
            var browserWidth = $(window).width();
            var browserHeight = $(window).height();
            if (right > browserWidth) {
                l = browserWidth - width;
            }
            if (buttom > browserHeight) {
                t = browserHeight - height;
            }
            $(this).parent().css({
                //修正面板位置
                left:l,
                top:t
            });
        };
        $.fn.dialog.defaults.onMove = easyuiPanelOnMove;
        $.fn.window.defaults.onMove = easyuiPanelOnMove;
        $.fn.panel.defaults.onMove = easyuiPanelOnMove;
    };

    $.fn.toolbar.defaults.valign = null;

    //时间格式化
    Date.prototype.format = function (format) {
        var o = {
            "M+":this.getMonth() + 1, //month
            "d+":this.getDate(), //day
            "h+":this.getHours(), //hour
            "m+":this.getMinutes(), //minute
            "s+":this.getSeconds(), //second
            "q+":Math.floor((this.getMonth() + 3) / 3), //quarter
            "S":this.getMilliseconds() //millisecond
        }
        if (/(y+)/.test(format)) format = format.replace(RegExp.$1,
            (this.getFullYear() + "").substr(4 - RegExp.$1.length));
        for (var k in o)if (new RegExp("(" + k + ")").test(format))
            format = format.replace(RegExp.$1,
                RegExp.$1.length == 1 ? o[k] :
                    ("00" + o[k]).substr(("" + o[k]).length));
        return format;
    }

   // easyui datebox 自定义校验
    var datePattern=/^(\d{4})[-/](\d{1,2})[-/](\d{1,2})$/,opText={">":"大于","<":"小于",">=":"大于等于","<=":"小于等于"};
    $.extend($.fn.validatebox.defaults.rules, {
        compareDate_resetTg:{
            validator:function (value, param) {
                if (value && param.length > 0) {
                    if (datePattern.test(value)) {
                        var el = $(param[0]), v = el.val() || el.getWidget().getValue();
                        if (v) {
                            if (datePattern.test(v)) {
                              //  var op = param.length > 1 ? param[1] : ">", d1 = new Date(value), d2 = new Date(v);
                                var op=param.length>1?param[1]:">",d1 = new Date(value.replace(/[-/]/g, "/")),d2 = new Date(v.replace(/[-/]/g, "/"));
                                if (eval(d1.getTime() + op + d2.getTime())){
                                    return true;
                                } else {
                                    param[0] = "无效,应" + opText[op] + v;
                                    $(param[2]).datebox("reset");
                                    return false;
                                }
                            }
                        }
                    } else {
                        param[0] = "无效";
                        return false;
                    }
                }
                return true;
            },
            message: ‘输入日期{0}‘
        }
        /* ,
        ruleAppealOpinion:{
            validator:function (value, param) {
                if(param.length > 0){
                    var count=$("#"+param[0]).getWidget()?$("#"+param[0]).getWidget().getValue():$("#"+param[0]).val();
                    var type=$("#"+param[1]).getWidget()?$("#"+param[1]).getWidget().getValue():$("#"+param[1]).val();
                    if(count>0){
                          if(!value&&param[2]==3){
                              return false;
                          }
                    }
                    else{
                        if(type==1){
                            if(!value&&(param[2]==1||param[2]==0)){
                                return false;
                            }
                        }
                        else if(type==2){
                            if(!value&&(param[2]==2||param[2]==0)){
                                return false;
                            }
                        }
                        else{
                            if(!value&&param[2]==3){
                                return false;
                            }
                        }
                    }
                }
                return true;
            },
            message: ‘不能为空!‘
        }*/
    })
})(jQuery);

//表单数据转化json
function form2Json() {
    var o = {};
    var a = $("form input").serializeArray();
    $.each(a, function () {
        if (o[this.name]) {
            if (!o[this.name].push) {
                o[this.name] = [o[this.name]];
            }
            o[this.name].push(this.value || ‘‘);
        } else {
            o[this.name] = this.value || ‘‘;
        }
    });
    return o;
}

function getFileBatchNo(){
   return loginAccount.accountId + "_" + new Date().getTime();
}

function isLeaf(node) {
    return node.state == undefined;
}

function dowloadFile(downLoadFile) {
    var fileNames = [‘GoogleChromeframeStandaloneEnterprise.msi‘,‘flashplayer11-7_install_win_ax.exe‘];
    var msg = ["系统需要ie8及以上版本,如果您的浏览器版本过低!为了提供更好的体验,请点击【确定】下载安装浏览器插件,并重启浏览器",
                "你确定下载flash控件?"];
    var r = window.confirm(msg[downLoadFile]);
    if (r) {
        location.href = ctx + "/"+fileNames[downLoadFile];
    }
}

function resetDgFooterStyle() {
    $(‘.datagrid-footer-inner‘).css(‘background‘, ‘#88CDEF‘);
}

/**
 * 控制两个日期不能只填一个
 * @param targetFr
 * @param targetTo
 * @return {Boolean}
 */
var validate = function(targetFr,targetTo){
  var vFr = $(targetFr).getWidget().getValue()||"";
  var vTo = $(targetTo).getWidget().getValue()||"";
  var allNotNull = vFr&&vTo;
  var allNull = vFr==""&&vTo=="";
  if(allNotNull||allNull){
      return true;
  }
   $.alert("请填写完整的日期区间");
   return false;
}

原文地址:https://www.cnblogs.com/ios9/p/9335071.html

时间: 2024-10-23 19:10:20

Js:消息弹出框、获取时间区间、时间格式、easyui datebox 自定义校验、表单数据转化json、控制两个日期不能只填一个的相关文章

【原创】贡献一个JS的弹出框代码...

一.前言 最近在做一个项目,自己感觉系统自带的alert()方法的弹出框实在是不堪入目,所以在网上找了一些资料,然后自己加工了一下,做出了自己的一个js弹出框,在这里贡献出来,希望对你有帮助. 二.开始 在这里我们来一个获取验证码的页面来说明,也是在我项目用用到的一个页面.我们首先创建一个HTML的静态页面.其中代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www

js 常见弹出框学习

模拟系统的弹出框 系统自带的弹出框 总结 链接  http://blog.csdn.net/anhuidelinger/article/details/17024491 参考这个网站学习模态框的动态弹出   http://tympanus.net/codrops/2013/06/25/nifty-modal-window-effects/,网站提供打包好的资源下载. html中的基本结构: <div class="md-modal md-effect-1" id="mo

clipboard.js在弹出框中无法复制的问题

前几天发现了个bug,在jquery-ui的弹出框(dialog)中,使用clipboard.js实现的复制功能,竟然不会生效,后面查了下相关资料,发现不止jquery-ui的dialog不行,其他的模态框,例如bootstrap的,也是一样不会生效的.原因就是弹出框会自动focus,而复制的底层实现是要获取选中的内容,失去焦点后就无法获取到了,从而导致复制失败. 解决办法: 1)对于 Bootstrap 模态框(Modals)中使用,或是在其他修改焦点的类库中使用,你会希望将获得焦点的元素设置

windows phone 8.1开发:(消息弹出框)强大的ContentDialog

原文出自:http://www.bcmeng.com/contentdialog/ 在应用开发中我们必不可少的会使用到消息框,windows phone8中的messagebox在windows phone8.1中变成了MessageDialog.使用方法大体相差不大.不过MessageDialog的功能过于简单,许多时候无法满足我们的实际需要.在windows phone 8.1中出现了ContentDialog,ContentDialog不仅可以选择半屏或者全屏展示,里面的内容还可以像一个X

angularjs提示消息弹出框

<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> .box{ max-height: 400px; background-color: #eee; width: 50%; position: fixed; bo

js处理弹出框的实例dialog的用法

可以结合jquery ui 这个js来使用 <div id="reg" style="display: none"> 表单区域 </div> <script> function IdInfo(Id) { $("#reg").dialog({ title : '被举报题目信息', buttons : { '提交' : function () { }, '取消' : function () { $(this).di

弹出框一 之 基于bootstrap和jquery的自定义弹出框

(function ($) { window.Ewin = function () { var html = '<div id="[Id]" class="modal fade" role="dialog" aria-labelledby="modalLabel">' + '<div class="modal-dialog modal-sm">' + '<div class=&

Android----消息弹出框

关于Android的知识,自从工作了就没有什么时间去总结学习过的知识,我个人比较喜欢学习后总结,今天就写一下关于android中消息弹出框的几种方式的简单示例,按照自己的思路写了一段,希望对和我一样在学习Android的各位同志们有所帮助,写的不好的还是希望各位技术大神多多指点,以后我会不段改进和学习与总结.欧克. 首先android中主要有8种消息对话框的方式. 1.AlertDialog.Builder(普通消息框) 1 AlertDialog.Builder ab=new AlertDia

第二百四十六节,Bootstrap弹出框和警告框插件

Bootstrap弹出框和警告框插件 学习要点: 1.弹出框 2.警告框 本节课我们主要学习一下 Bootstrap 中的弹出框和警告框插件. 一.弹出框 弹出框即点击一个元素弹出一个包含标题和内容的容器. 基本用法 注意:必须在js结合popover()方法使用 data-toggle="popover"弹出框事件绑定,写在触发弹出框的元素里,执行弹出框事件点击弹出或隐藏(Bootstrap)title=""设置弹出框标题,写在弹出框元素里,(Bootstrap)