jquery后台日期价格输入

 
 
<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <script src="http://www.jq22.com/jquery/jquery-1.10.2.js"></script>
    <style>
        #RangeDate_bg{
            position: fixed;
            bottom: 0;
            left: 0;
            width: 100%;
            height: 100%;
            overflow: hidden;
            background: rgba(0,0,0,0.5);
            padding:20px 100px;
            box-sizing: border-box;
        }
        #RangeDateFu{
            min-width: 750px;
            display: flex;
            flex-wrap: wrap;
            text-align: center;
            font-size: 14px;
            line-height: 25px;
            color: #333;
            background: #fff;
            height: 100%;
            width: 100%;
            flex-direction: column;
        }
        .RangeDate_xinqiContainer{
            height: 40px;
            display: flex;
            padding-right: 17px;
        }
        .RangeDate_xinqi{
            width: 14%;
            height: 40px;
            line-height: 40px;
            color: #666;
        }
        .RangeDate_title{
            height: 36px;
            line-height: 36px;
            font-size: 14px;
            color: #333;
            background: #fafafa;
            width: 100%;
            border-bottom: 1px solid #eee;
            border-top: 1px solid #eee;
        }
        .RangeDate_day{
            cursor: pointer;
            height: 48px;
            width: 14%;
            position: relative;
            margin:1px 0;
        }
        .RangeDate_day:hover .RangeDate_editor{
            display: block;
        }
        .RangeDate_editor{
            position: absolute;
            display: none;
            right: 5px;
            top: 0;
            width: 20px;
            height: 20px;
            background: url("bianji.png") no-repeat center;
            background-size: 15px 15px;
        }
        .RangeDate_editorCon{
            display: none;
            position: absolute;
            right: 5px;
            top: 0;
            border: 1px solid #666;
        }
        .RangeDate_editorCon p{
            padding-right: 10px;
            font-size: 10px;
            line-height: 16px;
            color: #666;
            padding-left: 5px;
            margin: 0;
            background-color: #eee;
        }
        .RangeDate_editorCon .RangeDate_editorSlt{
            background:#eee url("yes.png") no-repeat right center;
            background-size: 10px 10px;
        }
        #RangeDateFu .RangeDate_day input{
            font-size: 10px;
            height: 16px;
            line-height: 16px;
            color:#333;
        }
        #RangeDate_container{
            flex: 1;
            display: flex;
            align-items: center;
            width: 100%;
            overflow-y: scroll;
            overflow-x: hidden;
            flex-wrap: wrap;
        }
        .RangeDate_head{
            width: 100%;
            background: #D1D1D1;
            box-sizing: border-box;
            text-align: left;
            color: #666;
            font-size: 16px;
            border-bottom: 1px solid #eee;
            padding: 6px 17px;
        }
        #RangeDate_weekDay{
            width: 100px;
        }
        #RangeDate_dayInput{
            width: 80%;
            text-align: center;
        }
        .RangeDate_done{
            color: #0091fe;
            float: right;
            height: 30px;
            line-height: 30px;
            border-radius: 4px;
            border: 1px solid #0091fe;
            padding:0 10px;
        }
        .RangeDate_week{
            color: #f9957b;
        }
        .RangeDate_none{
            display: none !important;
        }
        .RangeDate_bolck{
            display: block !important;
        }
        .RangeDate_A1{
            color: #a1a1a1;
        }
        .RangeDate_dayNo{
            color:#a2a2a2;
        }
        #RangeDateFu .RangeDate_dayNo input{
            color:#a2a2a2;
        }
    </style>
</head>
<body>
<input type="text" id="test" readonly value="点我">
</body>
<script>
    var arr=[];
    window.RangeDate=function(RangeDateID ){
        if($('#RangeDate_bg').length!=0){
            document.querySelector('body').removeChild(document.querySelector('#RangeDate_bg'))
        }
        $('body').append(
                '<div id="RangeDate_bg" class="RangeDate_none">'+
                '<div id="RangeDateFu">'+
                '<div class="RangeDate_head">'+
                '<span>所有日期</span><input type="text" style="width: 100px;margin-right: 5px" class="RangeDate_allDay"><button id="RangeDate_allDay" style="margin-right: 20px">完成</button>'+
                '<span>周六</span><input type="text" style="width: 100px;margin-right: 5px" class="RangeDate_weekSaturday"><button id="RangeDate_weekSaturday" style="margin-right: 20px">完成</button>'+
                '<span>周日</span><input type="text" style="width: 100px;margin-right: 5px" class="RangeDate_weekSunday"><button id="RangeDate_weekSunday" style="margin-right: 20px">完成</button>'+
                '<div class="RangeDate_done">'+
                '完成'+
                '</div>'+
                '</div>'+
                '<div class="RangeDate_xinqiContainer">'+
                '<div class="RangeDate_xinqi RangeDate_week"></div>'+
                '<div class="RangeDate_xinqi"></div>'+
                '<div class="RangeDate_xinqi"></div>'+
                '<div class="RangeDate_xinqi"></div>'+
                '<div class="RangeDate_xinqi"></div>'+
                '<div class="RangeDate_xinqi"></div>'+
                '<div class="RangeDate_xinqi RangeDate_week"></div>'+
                '</div>'+
                '<div id="RangeDate_container"></div>'+
                '</div>'+
                '</div>'
        )

        var today=new Date();
        var fu=document.querySelector('#RangeDate_container');
        var startWeek=new Date(today.getFullYear(),today.getMonth(),1). getDay();
        var dayNum=32-(new Date(today.getFullYear(),today.getMonth(),32).getDate());
        var monthNum= 0,flag= 1,RangeDate_start=true,RangeDate_end=true,RangeDate_startId='',RangeDate_endId='',RangeDate_center=[];
        var prompt=document.createElement('div');
        $(prompt).addClass('RangeDate_prompt')

        function getDay(attr){
            var monthTitle=document.createElement('div');
            $(monthTitle).addClass('RangeDate_title');
            monthTitle.innerHTML=new Date(today.getFullYear(),today.getMonth()+monthNum,1).getFullYear()+''+(new Date(today.getFullYear(),today.getMonth()+monthNum,1).getMonth()+1)+'';
            fu.appendChild(monthTitle);
            var firstDay=document.createElement('div');
            $(firstDay).addClass('RangeDate_day');
            $(firstDay).attr('id','RangeDate_'+flag);
            $(firstDay).attr('data-id',attr+'1');
            $(firstDay).attr('status','1');
            isWeek(firstDay,attr+'1');
            flag++;
            firstDay.style.marginLeft=startWeek*14+"%";
            firstDay.style.width='14%';
            firstDay.innerHTML='<div>1</div>';
            $(firstDay).append('<input type="text" id="RangeDate_dayInput"><div class="RangeDate_editor"></div><div class="RangeDate_editorCon"><p class="RangeDate_editorSlt" style="border-bottom: 1px solid #666;">启用</p><p>禁用</p></div>');
            $(firstDay).find('input').bind('change',function(){
                if(isPrice($(this))){return};
                getTarget();
            });
            $(firstDay).find('.RangeDate_editor').bind('click',function(){
                $(this).siblings('.RangeDate_editorCon').addClass('RangeDate_bolck');
            });
            $(firstDay).find('.RangeDate_editorCon p').each(function(index,ele){
                $(ele).bind('click',function(){
                    $(this).addClass('RangeDate_editorSlt').siblings().removeClass('RangeDate_editorSlt').parent().removeClass('RangeDate_bolck');
                    if(index==0){
                        $(this).parents('.RangeDate_day').attr('status','1').removeClass('RangeDate_dayNo').find('input')[0].readOnly=false;
                    }else{
                        $(this).parents('.RangeDate_day').attr('status','0').addClass('RangeDate_dayNo').find('input')[0].readOnly=true;
                    }
                });
            });
            fu.appendChild(firstDay);
            for(var i=2;i<=dayNum;i++){
                var j=document.createElement('div');
                $(j).addClass('RangeDate_day');
                $(j).attr('id','RangeDate_'+flag);
                flag++;
                j.innerHTML='<div>'+i+'</div>';
                $(j).append('<input type="text" id="RangeDate_dayInput"><div class="RangeDate_editor"></div><div class="RangeDate_editorCon"><p class="RangeDate_editorSlt" style="border-bottom: 1px solid #666;">启用</p><p>禁用</p></div>');
                $(j).attr('data-id',attr+i);
                $(j).attr('status','1');
                isWeek(j,attr+i);
                $(j).find('input').bind('change',function(){
                    if(isPrice($(this))){return};
                    getTarget();
                });
                $(j).find('.RangeDate_editor').bind('click',function(){
                    $(this).siblings('.RangeDate_editorCon').addClass('RangeDate_bolck');
                });
                $(j).find('.RangeDate_editorCon p').each(function(index,ele){
                    $(ele).bind('click',function(){
                        $(this).addClass('RangeDate_editorSlt').siblings().removeClass('RangeDate_editorSlt').parent().removeClass('RangeDate_bolck');
                        if(index==0){
                            $(this).parents('.RangeDate_day').attr('status','1').removeClass('RangeDate_dayNo').find('input')[0].readOnly=false;
                        }else{
                            $(this).parents('.RangeDate_day').attr('status','0').addClass('RangeDate_dayNo').find('input')[0].readOnly=true;
                        }
                    });
                });
                fu.appendChild(j)
            }
            monthNum++;
            startWeek=new Date(today.getFullYear(),today.getMonth()+monthNum,1).getDay();
            dayNum=32-(new Date(today.getFullYear(),today.getMonth()+monthNum,32).getDate());
        }
        getDay(new Date(today.getFullYear(),today.getMonth()+1,1).getFullYear()+'-'+new Date(today.getFullYear(),today.getMonth()+1,1).getMonth()+'-');
        getDay(new Date(today.getFullYear(),today.getMonth()+2,1).getFullYear()+'-'+new Date(today.getFullYear(),today.getMonth()+2,1).getMonth()+'-');
        getDay(new Date(today.getFullYear(),today.getMonth()+3,1).getFullYear()+'-'+new Date(today.getFullYear(),today.getMonth()+3,1).getMonth()+'-');
        getDay(new Date(today.getFullYear(),today.getMonth()+4,1).getFullYear()+'-'+new Date(today.getFullYear(),today.getMonth()+4,1).getMonth()+'-');
        $('#RangeDate_'+new Date().getDate()+' div').eq(0).html('今天');
        for(var i=new Date().getDate()-1;i>0;i--){
            $('#RangeDate_'+i).attr('status','0');
            $('#RangeDate_'+i).addClass('RangeDate_dayNo');
            $('#RangeDate_'+i).find('input')[0].readOnly=true;
            $('#RangeDate_'+i).find('.RangeDate_editor').remove();
        }
        $('#'+RangeDateID).bind('click',function(){
            $('#RangeDate_bg').toggleClass('RangeDate_none');
        });
        $('#RangeDate_allDay').bind('click',function(){
            if(isPrice($(this).siblings('input'))){return};
            $('.RangeDate_day').each(function(index,ele){
                $(ele).find('input').val($('#RangeDate_allDay').siblings('.RangeDate_allDay').val())
            });
            getTarget();
        });
        $('#RangeDate_weekSaturday').bind('click',function(){
            if(isPrice($(this).siblings('input'))){return};
            $('.RangeDate_saturday').each(function(index,ele){
                $(ele).find('input').val($('#RangeDate_weekSaturday').siblings('.RangeDate_weekSaturday').val())
            });
            getTarget();
        });
        $('#RangeDate_weekSunday').bind('click',function(){
            if(isPrice($(this).siblings('input'))){return};
            $('.RangeDate_sunday').each(function(index,ele){
                $(ele).find('input').val($('#RangeDate_weekSunday').siblings('.RangeDate_weekSunday').val())
            });
            getTarget();
        });
        $('.RangeDate_done').bind('click',function(){
            $('#RangeDate_bg').toggleClass('RangeDate_none');
        });
        function isWeek(ele,attr){
            if(new Date(attr).getDay() == 6){
                $(ele).addClass('RangeDate_saturday');
            }else if(new Date(attr).getDay() == 0){
                $(ele).addClass('RangeDate_sunday');
            }
        }
        function isPrice(ele){
            if(/^[1-9]\d*(\.\d+)?$/.test(ele.val())){
                return false;
            }else {
                alert('输入大于零的数字!');
                $(ele).val('');
                return true
            }
        }
        function getTarget(){
            arr=[];
            $('.RangeDate_day').each(function(index,ele){
                console.log($(ele).attr('status'))
                if($(ele).attr('status') == '1'){
                    arr.push({
                        useDate:dealDate(new Date($(ele).attr('data-id'))),
                        price:$(ele).find('input').val(),
                        status:'1'
                    })
                }else if($(ele).attr('status') == '0'){
                    arr.push({
                        useDate:dealDate(new Date($(ele).attr('data-id'))),
                        price:$(ele).find('input').val(),
                        status:'0'
                    })
                }
            })
            console.log(JSON.stringify(arr));
        }
        function dealDate(date){
            return date.getFullYear()+((date.getMonth()+1+'').length==1?'0'+(date.getMonth()+1):(date.getMonth()+1))+((date.getDate()+'').length==1?'0'+date.getDate():date.getDate())
        }
    }
    window.RangeDate('test')

    //数据格式
    //[{"useDate":"20170401","price":"300","status":"0"},{"useDate":"20170402","price":"200","status":"0"},{"useDate":"20170403","price":"100","status":"0"},{"useDate":"20170404","price":"100","status":"1"},{"useDate":"20170405","price":"100","status":"1"},{"useDate":"20170406","price":"100","status":"1"},{"useDate":"20170407","price":"500","status":"1"},{"useDate":"20170408","price":"300","status":"1"},{"useDate":"20170409","price":"200","status":"0"},{"useDate":"20170410","price":"100","status":"0"},{"useDate":"20170411","price":"100","status":"1"},{"useDate":"20170412","price":"100","status":"1"},{"useDate":"20170413","price":"100","status":"1"},{"useDate":"20170414","price":"500","status":"1"},{"useDate":"20170415","price":"300","status":"1"},{"useDate":"20170416","price":"200","status":"0"},{"useDate":"20170417","price":"100","status":"0"},{"useDate":"20170418","price":"100","status":"1"},{"useDate":"20170419","price":"100","status":"1"},{"useDate":"20170420","price":"100","status":"1"},{"useDate":"20170421","price":"500","status":"1"},{"useDate":"20170422","price":"300","status":"1"},{"useDate":"20170423","price":"200","status":"0"},{"useDate":"20170424","price":"100","status":"0"},{"useDate":"20170425","price":"100","status":"1"},{"useDate":"20170426","price":"100","status":"1"},{"useDate":"20170427","price":"100","status":"1"},{"useDate":"20170428","price":"500","status":"1"},{"useDate":"20170429","price":"300","status":"1"},{"useDate":"20170430","price":"200","status":"0"},{"useDate":"20170501","price":"100","status":"1"},{"useDate":"20170502","price":"100","status":"1"},{"useDate":"20170503","price":"100","status":"1"},{"useDate":"20170504","price":"100","status":"1"},{"useDate":"20170505","price":"100","status":"1"},{"useDate":"20170506","price":"300","status":"1"},{"useDate":"20170507","price":"200","status":"1"},{"useDate":"20170508","price":"100","status":"1"},{"useDate":"20170509","price":"100","status":"1"},{"useDate":"20170510","price":"100","status":"1"},{"useDate":"20170511","price":"100","status":"1"},{"useDate":"20170512","price":"100","status":"1"},{"useDate":"20170513","price":"300","status":"1"},{"useDate":"20170514","price":"200","status":"1"},{"useDate":"20170515","price":"100","status":"1"},{"useDate":"20170516","price":"100","status":"1"},{"useDate":"20170517","price":"100","status":"1"},{"useDate":"20170518","price":"100","status":"1"},{"useDate":"20170519","price":"100","status":"1"},{"useDate":"20170520","price":"300","status":"1"},{"useDate":"20170521","price":"200","status":"1"},{"useDate":"20170522","price":"100","status":"1"},{"useDate":"20170523","price":"100","status":"1"},{"useDate":"20170524","price":"100","status":"1"},{"useDate":"20170525","price":"100","status":"1"},{"useDate":"20170526","price":"100","status":"1"},{"useDate":"20170527","price":"300","status":"1"},{"useDate":"20170528","price":"200","status":"1"},{"useDate":"20170529","price":"100","status":"1"},{"useDate":"20170530","price":"100","status":"1"},{"useDate":"20170531","price":"100","status":"1"},{"useDate":"20170601","price":"100","status":"1"},{"useDate":"20170602","price":"100","status":"1"},{"useDate":"20170603","price":"300","status":"1"},{"useDate":"20170604","price":"200","status":"1"},{"useDate":"20170605","price":"100","status":"1"},{"useDate":"20170606","price":"100","status":"1"},{"useDate":"20170607","price":"100","status":"1"},{"useDate":"20170608","price":"100","status":"1"},{"useDate":"20170609","price":"100","status":"1"},{"useDate":"20170610","price":"300","status":"1"},{"useDate":"20170611","price":"200","status":"1"},{"useDate":"20170612","price":"100","status":"1"},{"useDate":"20170613","price":"100","status":"1"},{"useDate":"20170614","price":"100","status":"1"},{"useDate":"20170615","price":"100","status":"1"},{"useDate":"20170616","price":"100","status":"1"},{"useDate":"20170617","price":"300","status":"1"},{"useDate":"20170618","price":"200","status":"1"},{"useDate":"20170619","price":"100","status":"1"},{"useDate":"20170620","price":"100","status":"1"},{"useDate":"20170621","price":"100","status":"1"},{"useDate":"20170622","price":"100","status":"1"},{"useDate":"20170623","price":"100","status":"1"},{"useDate":"20170624","price":"300","status":"1"},{"useDate":"20170625","price":"200","status":"1"},{"useDate":"20170626","price":"100","status":"1"},{"useDate":"20170627","price":"100","status":"1"},{"useDate":"20170628","price":"100","status":"1"},{"useDate":"20170629","price":"100","status":"1"},{"useDate":"20170630","price":"100","status":"1"},{"useDate":"20170701","price":"300","status":"1"},{"useDate":"20170702","price":"200","status":"1"},{"useDate":"20170703","price":"100","status":"1"},{"useDate":"20170704","price":"100","status":"1"},{"useDate":"20170705","price":"100","status":"1"},{"useDate":"20170706","price":"100","status":"1"},{"useDate":"20170707","price":"100","status":"1"},{"useDate":"20170708","price":"300","status":"1"},{"useDate":"20170709","price":"200","status":"1"},{"useDate":"20170710","price":"100","status":"1"},{"useDate":"20170711","price":"100","status":"1"},{"useDate":"20170712","price":"100","status":"1"},{"useDate":"20170713","price":"100","status":"1"},{"useDate":"20170714","price":"100","status":"1"},{"useDate":"20170715","price":"300","status":"1"},{"useDate":"20170716","price":"200","status":"1"},{"useDate":"20170717","price":"100","status":"1"},{"useDate":"20170718","price":"100","status":"1"},{"useDate":"20170719","price":"100","status":"1"},{"useDate":"20170720","price":"100","status":"1"},{"useDate":"20170721","price":"100","status":"1"},{"useDate":"20170722","price":"300","status":"1"},{"useDate":"20170723","price":"200","status":"1"},{"useDate":"20170724","price":"100","status":"1"},{"useDate":"20170725","price":"100","status":"1"},{"useDate":"20170726","price":"100","status":"1"},{"useDate":"20170727","price":"100","status":"1"},{"useDate":"20170728","price":"100","status":"1"},{"useDate":"20170729","price":"300","status":"1"},{"useDate":"20170730","price":"200","status":"1"},{"useDate":"20170731","price":"100","status":"1"}]

</script>
</html>

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值