【问题标题】:JTSage date box not showing in no input box displayJTSage 日期框不显示在没有输入框显示
【发布时间】:2022-08-02 18:38:43
【问题描述】:

目前我正在尝试在我的模式中添加 JTSage 日期框。

如果我使用正常方式(显示输入文本并单击输入字段),它将显示日期框。

但我正在尝试使用No Input BoxNo Input Display

在检查页面时。我只需要在下面实现代码,日期框就会自动显示。

但就我而言,日期框根本没有显示。

 <div class=\"form-group\">
        <div class=\"input-group\" style=\"display:none\">
            <input id=\"calDate\" type=\"text\" class=\"form-control\" data-role=\"datebox\" data-options=\'{\"mode\":\"flipbox\",\"useInline\":\"true\",\"hideInput:\"true\"}\' readonly=\"readonly\">
        </div>
 </div>

有什么我想念的吗?

编辑:

<input id=\"calDate\" type=\"text\" class=\"form-control\" data-role=\"datebox\"  readonly=\"readonly\">

 $(\'#calDate\').datebox({
    mode: \"flipbox\",
    useLang:\"id\",
    overrideSetDateButtonLabel:\"Atur tanggal\",
    useInline:\"true\",
    useInlineAlign:\"center\",
    hideInput:\"true\",
    beforeOpenCallback:\"abc\",
    beforeOpenCallbackArgs:\"def\",
    openCallBack:\"ghi\",
    openCallBackArgs:\"jkl\",
    closeCallBack:\"mno\",
    closeCallBackArgs:\"pqr\",
    });

它通过使用上面的代码修复

但是还有另一个错误,如下图所示,它没有直接显示当前日期。我需要对日期框做一个小手势,以便它移动到当前日期。但为什么我要触摸它才能让它工作呢?

更新 :

我在模态体内运行日期框。当我在没有模态的情况下使用它时,它运行正常。有人可以帮助找到解决方案吗?

<body>
<button type=\"button\" id=\"call\"class=\"btn btn-primary\">ABC</button>

</body>
    <div class=\"modal fade\" id=\"myModal\" tabindex=\"-1\" role=\"dialog\" aria-labelledby=\"myModalLabel\">
        <div class=\"modal-dialog\" role=\"document\">
            <div class=\"modal-content\">
                <div class=\"modal-header\">
                    <button type=\"button\" class=\"close\" data-dismiss=\"modal\" aria-label=\"Close\"><span aria-hidden=\"true\">&times;</span></button>
                    <h4 class=\"modal-title\" id=\"myModalLabel\"> Detail</h4>
                </div>
                <div class=\"modal-body\" id=\"modal-content\">
              
            <div class=\"form-group\">
            <div class=\"input-group\" >
                <input id=\"calDate\" type=\"text\"  class=\"form-control\" data-role=\"datebox\" readonly=\"readonly\">
            </div>
            </div>
                </div>
                <div class=\"modal-footer\">
                    <button type=\"button\" class=\"btn btn-default\" data-dismiss=\"modal\">Close</button>
                </div>
            </div>
        </div>
    </div>



<script>
    $(\"#call\").click(function(e){
       
        $(\"#myModal\").modal(\"show\");
    });
    
    $(\'#calDate\').datebox({
    mode: \"flipbox\",
    useLang:\"id\",
    overrideSetDateButtonLabel:\"Atur tanggal\",
    useInline:\"true\",
    useImmediate:\"true\",
    useInlineAlign:\"center\",
    hideInput:\"true\",
    beforeOpenCallback:\"abc\",
    beforeOpenCallbackArgs:\"def\",
    openCallBack:\"ghi\",
    openCallBackArgs:\"jkl\",
    closeCallBack:\"mno\",
    closeCallBackArgs:\"pqr\",
    });
    </script>

第二个问题

我正在使用 modes : flipboxflipbox 点击set date 时如何获取值,如下图所示?

  • 自从我一直在积极开发它已经很长时间了 - 但是,“useImmediate”会给你你正在寻找的行为吗?我认为该选项旨在帮助在控件“准备好”时强制更新,并摆脱您需要触摸它以显示日期
  • @J.T.Sage 尝试使用 Immediate 并且它不起作用。如果我不在模态框内使用它,它会直接运行,但如果它在模态框内,则需要触摸日期框

标签: jquery datebox


【解决方案1】:

您应该能够像这样获得日期值:

$(".btn-outline-secondary").on( "click", function() {
console.log($('#calDate').datebox('getTheDate').toString())
})

至于另一个问题,似乎工作正常,这是一个例子,检查你的这个,看看你是否错过了一些东西:

$('#calDate').datebox({
  mode: "flipbox",
  useLang: "id",
  overrideSetDateButtonLabel: "Atur tanggal",
  useInline: "true",
  useInlineAlign: "center",
  hideInput: "true",
  beforeOpenCallback: "abc",
  beforeOpenCallbackArgs: "def",
  openCallBack: "ghi",
  openCallBackArgs: "jkl",
  closeCallBack: "mno",
  closeCallBackArgs: "pqr",
});
$(".btn-outline-secondary").on("click", function() {
  console.log($('#calDate').datebox('getTheDate').toString())
})
<input id="calDate" type="text" class="form-control" data-role="datebox" readonly="readonly">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
<link rel="stylesheet" href="https://cdn.jtsage.com/jtsage-datebox/4.4.2/jtsage-datebox-4.4.2.bootstrap4.min.css" />
<link rel="stylesheet" href="https://jtsage.dev/DateBox/css/syntax.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/external/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="https://jtsage.dev/DateBox/js/doc.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/jtsage-datebox/4.4.2/jtsage-datebox-4.4.2.bootstrap4.min.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/jtsage-datebox/i18n/jtsage-datebox.lang.utf8.js"></script>
<script type="text/javascript">
  jQuery.extend(jQuery.jtsage.datebox.prototype.options, {
    'useLang': 'en'
  });
</script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>

我希望这有帮助

【讨论】:

  • 你好,我重新检查了我的代码,感觉日期没有直接移动,因为我在模式上打开它。当我在模态之外运行它时,它运行正确。如果它在模态体内打开,你能帮忙重新检查一下吗?帖子更新了
  • 而且,关于“btn-outline-secondary”点击不起作用,尝试添加控制台并且它没有显示控制台输出,输出是警告滚动阻止'touchStart'
  • 你能帮我解决这个问题吗?
  • 对不起,我会的,我现在不在,但会尽快回来并尽快提供帮助
【解决方案2】:

对不起,我不在的时候回复晚了。

这是在模型中工作的日历,您必须在模型打开时单击输入框旁边的按钮,不确定这是否是 Calder 控件的预期设计,但如果您希望在模型打开时打开它只需要添加

$('#calDate').trigger( "datebox", { "method" : "open" });

请注意,每次单击日历下的按钮时,它都会将日期记录到控制台,这仅用于演示目的,因此您可以看到它正在工作

https://jsfiddle.net/PatrickHume/tpfhjwdb/18/

$(function() {

  $('#calDate').datebox({
    mode: "flipbox",
    useLang: "id",
    overrideSetDateButtonLabel: "Atur tanggal",
    useInline: "true",
    useInlineAlign: "center",
    hideInput: "true",
    beforeOpenCallback: "abc",
    beforeOpenCallbackArgs: "def",
    openCallBack: "ghi",
    openCallBackArgs: "jkl",
    closeCallBack: "mno",
    closeCallBackArgs: "pqr",
  });
  $('#calDate').bind("datebox", function(e, passed) {
    if (passed.method === "set") {
      console.log($('#calDate').datebox('getTheDate').toString())
    }
  });
})
.modal{
  width:500px;
  height:500px;
}
<!-- Remember to include jQuery :) -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<!-- jQuery Modal -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
<link rel="stylesheet" href="https://cdn.jtsage.com/jtsage-datebox/4.4.2/jtsage-datebox-4.4.2.bootstrap4.min.css" />
<link rel="stylesheet" href="https://jtsage.dev/DateBox/css/syntax.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/external/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="https://jtsage.dev/DateBox/js/doc.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/jtsage-datebox/4.4.2/jtsage-datebox-4.4.2.bootstrap4.min.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/jtsage-datebox/i18n/jtsage-datebox.lang.utf8.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
<script type="text/javascript">
  jQuery.extend(jQuery.jtsage.datebox.prototype.options, {
    'useLang': 'en'
  });

</script>


<div id="ex1" class="modal">
  <input id="calDate" type="text" class="form-control" data-role="datebox" readonly="readonly">
  <a href="#" rel="modal:close">Close</a>
</div>

<!-- Link to open the modal -->
<p><a href="#ex1" rel="modal:open">Open Modal</a></p>

我希望这有帮助

【讨论】:

  • 是否可以隐藏输入文本字段并使用 jquery 触发器触发输入按钮?
【解决方案3】:

如果您需要隐藏输入并仍然获取日期,这里有一个示例显示如何在设置日期后获取模型打开时的日期,当您手动单击按钮设置日期以及模型关闭时

$(".modal").dialog({
  autoOpen: false,
  width: 500,
  height: 500,
  open: function(event, ui) {
    console.log(`Model Open, Date is ` +
      $('#calDate').datebox('getTheDate').toString())
  },
  close: function(event, ui) {
    console.log(`Model Close Date is ` +
      $('#calDate').datebox('getTheDate').toString())
  }
});
$("#opener").click(function() {
  $(".modal").dialog("open");
  $('#calDate').trigger("datebox", {
    "method": "open"
  });
});


$('#calDate').bind("datebox", function(e, passed) {
  if (passed.method === "set") {
    console.log(`Clicked Set Date Button Date Is Now ` +
      $('#calDate').datebox('getTheDate').toString())
  }
});

jQuery.extend(jQuery.jtsage.datebox.prototype.options, {
  mode: "flipbox",
  useLang: "id",
  overrideSetDateButtonLabel: "Atur tanggal",
  useInline: "true",
  useInlineAlign: "center",
  hideInput: "true",
});
<link href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css" rel="stylesheet"/>
<!-- Remember to include jQuery :) -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.0.0/jquery.min.js"></script>
<!-- jQuery Modal -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-modal/0.9.1/jquery.modal.min.css" />
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
<link rel="stylesheet" href="https://cdn.jtsage.com/jtsage-datebox/4.4.2/jtsage-datebox-4.4.2.bootstrap4.min.css" />
<link rel="stylesheet" href="https://jtsage.dev/DateBox/css/syntax.css" />
<script type="text/javascript" src="https://code.jquery.com/jquery-2.1.1.js"></script>
<script type="text/javascript" src="https://code.jquery.com/ui/1.11.4/jquery-ui.min.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/external/jquery.mousewheel.min.js"></script>
<script type="text/javascript" src="https://jtsage.dev/DateBox/js/doc.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/jtsage-datebox/4.4.2/jtsage-datebox-4.4.2.bootstrap4.min.js"></script>
<script type="text/javascript" src="https://cdn.jtsage.com/jtsage-datebox/i18n/jtsage-datebox.lang.utf8.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>




<!-- Link to open the modal -->
<div id="ex1" class="modal">
  <input id="calDate" type="text" class="form-control" data-role="datebox" readonly="readonly">

</div>

<button id="opener">open the dialog</button>

这是你的追求吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-30
    • 2012-02-04
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2020-03-01
    相关资源
    最近更新 更多