Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/420.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在单击按钮之前,防止引导下拉列表崩溃_Javascript_Jquery_Twitter Bootstrap_Datepicker - Fatal编程技术网

Javascript 在单击按钮之前,防止引导下拉列表崩溃

Javascript 在单击按钮之前,防止引导下拉列表崩溃,javascript,jquery,twitter-bootstrap,datepicker,Javascript,Jquery,Twitter Bootstrap,Datepicker,请评论并澄清问题。我怀疑这个问题措词不当,但它很复杂,所以这是一个很难问的问题 我目前在引导导航栏上有一个下拉菜单,我已经将它转换为工具栏。为了选择一个范围,我将2个引导移到下拉列表中 问题是,一旦我为一个日期选择器输入选择了日期,下拉菜单就会关闭。我希望它保持打开状态,直到单击“确定”按钮或我从下拉列表中单击 如果你没有,这里是 关闭下拉列表的行位于clearMenus()功能中bootstrap.js的第798行: 我一直在学习Javascript,但这个问题超出了我的理解范围 前端 ..

请评论并澄清问题。我怀疑这个问题措词不当,但它很复杂,所以这是一个很难问的问题

我目前在引导导航栏上有一个下拉菜单,我已经将它转换为工具栏。为了选择一个范围,我将2个引导移到下拉列表中

问题是,一旦我为一个日期选择器输入选择了日期,下拉菜单就会关闭。我希望它保持打开状态,直到单击“确定”按钮或我从下拉列表中单击

如果你没有,这里是 关闭下拉列表的行位于clearMenus()功能中bootstrap.js的第798行:

我一直在学习Javascript,但这个问题超出了我的理解范围

前端

...
<div class="dropup mobilewidth mobilebottom">
  <button class="btn btn-default dropdown-toggle mobilewidth" type="button" id="dropdownMenu2" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
    Date Range
    <span class="caret"></span>
  </button>
  <ul class="dropdown-menu datepicWidth" aria-labelledby="dropdownMenu2">
    <div class="dpInputs">
      <div class="input-group" style="padding-bottom: 4px;">
        <span class="input-group-addon datepic1stChld">From:</span>
        <input class="datepicker dp1 datepic2ndChld" readonly="true" name="startDate">
      </div>        
      <div class="input-group">
        <span class="input-group-addon datepic1stChld">To: </span>
        <input class="datepicker dp2 datepic2ndChld" readonly="true" name="endDate">
      </div>
    </div>
    <div class="dpSubmit">
      <button type="submit" id="dpSubmitBtn">OK</button>
    </div>
    </ul>
  </div>
</div>
...

我认为您不需要它们,但以下是

我认为如果覆盖日期选择器的“changeDate”事件并阻止其默认行为,它应该可以工作

$("#myCal").on('changeDate', function(ev)
{
    ev.preventDefault();
});

不过,您需要为日历使用合适的选择器来更改“#myCal”

而不是编写一些javascript或jquery代码(重新发明轮子)。上述场景可以通过引导自动关闭选项进行管理。 您可以向自动关闭提供以下任一值:

  • 始终-(默认值)在单击下拉列表的任何元素时自动关闭下拉列表

  • outsideClick-仅当用户单击下拉列表之外的任何元素时,才会自动关闭下拉列表

  • 禁用-禁用自动关闭

  • 请看下面的例子:

    设置

    希望这有帮助:)

    .navbar {
      border-radius: 0px;
    }
    
    .dropup{
        display: inline-block;
    }
    
    .dropdown-menu {
        padding: 4px 4px 4px 4px;
        min-width: 30px;
    }
    .navbar-default2 {
      background-color: #f8f8f8;
      border-color: #e7e7e7;
      position: fixed;
      bottom: 0px;
      width: 100%;
      margin-bottom: 0px;
      vertical-align: middle;
    }
    .navbar-default2 .navbar-brand {
      color: #777;
    }
    .navbar-default2 .navbar-toggle:hover,
    .navbar-default2 .navbar-toggle:focus {
      background-color: #ddd;
    }
    .navbar-default2 .navbar-toggle {
      border-color: #ddd;
    }
    .navbar-default2 .navbar-toggle .icon-bar {
      background-color: #888;
    }
    
    @media (min-width: 768px) {
      .navbar-footer {
        float: left;
      }
    }
    .container > .navbar-footer,
    .container-fluid > .navbar-footer,
    .container > .navbar-collapse,
    .container-fluid > .navbar-collapse {
      margin-right: -15px;
      margin-left: -15px;
    }
    @media (min-width: 768px) {
      .container > .navbar-footer,
      .container-fluid > .navbar-footer,
      .container > .navbar-collapse,
      .container-fluid > .navbar-collapse {
        margin-right: 0;
        margin-left: 0;
      }
    }
    
     .navbar-nav .open .dropdown-menu > li > a,
      .navbar-nav .open .dropdown-menu .dropdown-footer {
        padding: 5px 15px 5px 25px;
      }
    
    button {
        margin-top: 8px;
    }
    .onlyMobile {
      display: none;
    }
    .datepic1stChld{
      width: 63px;
    }
    .datepic2ndChld{
      width: 100%;
      border-radius: 0px;
      border: 1px solid #ccc;
    }
    
    .datepicWidth {
      width: 280px;
      left: -165px;
    }
    .dpInputs{
      width: 200px;
      float: left;
    }
    .dpSubmit{
      width: 68px;
      float: left;
    }
    #dpSubmitBtn{
      margin: 0px 2px 2px 3px;
      width: 100%;
      height: 64px;
      border: 1px solid #ccc;
      background-color: #eee;
    }
    @media (max-width: 767px) {
      .btn-default{
        font-size: 17px;
      }
      .three{
        width: 33.333333333%;
      }
      .mobilewidth{
        width: 100%;
      }
      .onlyMobile{
        display: block;
      }
      .mobilebottom {
        padding-bottom: 8px;
      }
      .WM3MY{
        width: 16.75%;
      }
      .fullwidth{
        width: 100%;
        font-size: 18px;
      }
      .input-group{
          width: 100%;
      }
      .datepicWidth {
        width: 100%;
        left: 0px;
      }
      .dpInputs{
         width: 73%
      }
      .dpSubmit{
          width: 26%;
      }
      #dpSubmitBtn{
        font-size: 18px;
        height: 74px;
        border-radius: 1px;
      }
      .datepic1stChld{
        width: 72px;
      }
      .datepic2ndChld{
        font-size: 18px;
      }
      .input-group-addon{
         font-size: 18px;
      }
    
    }
    
    .navbar-collapse.in {
        overflow-y: visible;
    }
    
    $("#myCal").on('changeDate', function(ev)
    {
        ev.preventDefault();
    });
    
    uib-dropdown auto-close="disabled"