bootbox和datepicker都是插件,我想要做的需求大致长这样:
我希望使用bootbox弹出的对话框中能弹出一个截止时间的选择框,这个选择框使用datepicker来做。
看了下这个帖子:
难点在于:
1 datepicker这个html是ajax生成的,需要绑定datepicker事件
2 datepicker出来的时间选择器会出现在浮窗后面。
解决代码如下:
<script type="text/javascript"> function bindDatePicker() { $("#datepicker").datepicker({ showOtherMonths: true, }); } function createLong(event){ event.preventDefault(); var pid = $("#cur_pid").val(); bootbox.dialog({ message: '<style>.datepicker{z-index: 99999 !important}</style> <form class="form-horizontal" role="form" id="create_report_form"> <input type="hidden" name="pid" value="'+ pid +'" /> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right" for="form_title"> 标题 </label> <div class="col-sm-9"> <textarea class="form-control" name="title" placeholder="标题"></textarea> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right"> 内容 </label> <div class="col-sm-9"> <textarea class="form-control" name="content" placeholder="内容"></textarea> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right"> 目标 </label> <div class="col-sm-9"> <textarea class="form-control" name="target" placeholder="目标"></textarea> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label no-padding-right"> 截止时间 </label> <div class="col-xs-6"> <div class="input-group input-group-sm"> <input type="text" id="datepicker" class="form-control hasDatepicker"> <span class="input-group-addon"> <i class="icon-calendar"></i> </span> </div> </div> </div> <script type="text/javascript">bindDatePicker()</script> </form>', title: "创建长期计划", buttons: { "success" : { "label" : "<i class='icon-ok'></i> 提交", "className" : "btn-sm btn-success", "callback": function() { var params = $("#create_report_form").serialize(); $.ajax({ type: "post", dataType: "jsonp", url: "http://api.test/report/create", data: params, jsonp: 'callback', jsonpCallback: 'callbackReportCreate', success: function(data) { if (data.msg == 'ok') { var reports = data.data; location.reload(); } } }); } } } }); }