jQuery-confirm对话框中的jQuery UI datepicker

时间:2016-07-25 14:24:35

标签: javascript jquery-ui datepicker

我正在使用以下链接中的jquery-confirm脚本。它能够在对话框中包含表单域。您可以点击下面链接中的“Act Like a Prompt”蓝色按钮来查看。

我已经设置了表单(单个字段),但我希望这个输入是一个日期选择器,我不知道我应该把javascript放到哪里,因为这个表单不存在直到生成对话框。

https://craftpip.github.io/jquery-confirm/

我的对话框javascript:

            $('.deal_edit').on('click', function () {
            var id = $(this).attr('data-id');
            $.confirm({
                title: 'Change end Date',
                content: 'url:form.txt',
                confirm: function () {
                    var input = this.$b.find('input#new_end_date').val();
                    var errorText = this.$b.find('.text-danger');
                    if (input.val() == '') {
                        errorText.show();
                        return false;
                    } else {
                        var data = {action: 'edit_deal', id: id, new_date: new_date};
                        $.post('ajax.php', data, function(response) {

                            $.alert({
                                title: "Updated",
                                content: "Ok, record has been updated - this page will reload.",
                                confirm: function() {
                                    location.reload();
                                }   
                            });

                        });
                    }
                }
            });
            return false;
        });     

form.txt的内容:

<p>The only editable field currently is 'deal end date'.  (This may change soon)</p>
<div class="form-group">
  <label>New End Date</label>
  <input autofocus type="text" id="new_end_date" name="new_end_date" class="form-control">
</div>
     <p class="text-danger" style="display:none">Please enter an end date, or click 'close'.</p>

谢谢!!!

2 个答案:

答案 0 :(得分:1)

我有同样的问题,这就是我解决它的方法。

您需要将onOpen和onClose上的事件添加到确认对话框中以添加

        $.confirm({
            onOpen: function(){
                $( ".datepicker" ).datepicker();
            },
            onClose: function(){
                $(".datepicker").datepicker("destroy");
            },
            title: 'Change end Date',
            content: 'url:form.txt',
            confirm: function () {
                var input = this.$b.find('input#new_end_date').val();
                var errorText = this.$b.find('.text-danger');
                if (input.val() == '') {
                    errorText.show();
                    return false;
                } else {
                    var data = {action: 'edit_deal', id: id, new_date: new_date};
                    $.post('ajax.php', data, function(response) {

                        $.alert({
                            title: "Updated",
                            content: "Ok, record has been updated - this page will reload.",
                            confirm: function() {
                                location.reload();
                            }   
                        });

                    });
                }
            }
        });

答案 1 :(得分:0)

您可以在onContentReady事件中添加代码,就像在插件创建对话框窗口后调用的函数一样。您可以将此代码添加到您的示例中

 onContentReady: function () {
    $("#new_end_date").datetimepicker();
 }