javascript - 使用数据列表自动下一个焦点到日期选择器

标签 javascript jquery html css

除第一次输入外,我的表单元素使用自动下一个焦点。我的第一个输入有数据列表,当我选择一个列表时,它不会关注下一个(日期选择器)输入。但是,如果我从第二个输入开始,我的自动对焦功能运行良好,我该如何处理呢?我也在codepen上分享了

$(document).ready(function() {

 $('.flexdatalist').flexdatalist({
    minLength: 0,
    searchContain: true,
  }).on('select:flexdatalist', function() {
    $('#checkin').focus();
  });


  var assignPicker = function(id, whenClosed) {
    if (typeof whenClosed !== 'function') {
      whenClosed = null;
    }

    return new Pikaday({
      numberOfMonths: 2,
      field: document.getElementById(id),
      format: "DD.MM.YYYY",
      minDate: new Date(),
      firstDay: 1,
      maxDate: new Date(2020, 12, 31),
      onSelect: function() {
        e = this.getDate();
      },
      onClose: whenClosed
    });
  }

  assignPicker('checkin', function() {
    $('#checkout').focus();
  });
  assignPicker('checkout', function() {
    $('#select').focus();
  });

});
body {
  padding: 30px;
}
input,
select {
  width: 100%;
  padding: 10px;
  border: 1px solid #ccc;
}
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/pikaday/1.5.1/css/pikaday.min.css" />
  <link rel="stylesheet" href="http://cdn.anitur.com.tr/example/flexdatalist/flexdatalist.css" />




</head>

<body>


  <div class="container">


    <div class="row">

      <div class="col-lg-3 col-md-3 col-sm-3">
        <input type="text" name="" class='flexdatalist' data-min-length='1' list='languages' name='language' />
        <datalist id="languages">
          <option value="PHP">PHP</option>
          <option value="JavaScript">JavaScript</option>
          <option value="Cobol">Cobol</option>
          <option value="C#">C#</option>
          <option value="C++">C++</option>
          <option value="Java">Java</option>
          <option value="Pascal">Pascal</option>
          <option value="FORTRAN">FORTRAN</option>
          <option value="Lisp">Lisp</option>
          <option value="Swift">Swift</option>
          <option value="ActionScript">ActionScript</option>
        </datalist>
      </div>
      <div class="col-lg-3 col-md-3 col-sm-3">
        <input type="text" class="checkin" id="checkin" />
      </div>
      <div class="col-lg-3 col-md-3 col-sm-3">

        <input type="text" class="checkout" id="checkout" />
      </div>
      <div class="col-lg-3 col-md-3 col-sm-3">

        <select name="select" id="select">
          <option value="0">Choose</option>
          <option value="1">1</option>
          <option value="2">2</option>
          <option value="3">3</option>
          <option value="4">4</option>
          <option value="5">5</option>
          <option value="6">6</option>
          <option value="7">7</option>
        </select>
      </div>

    </div>


  </div>



  <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>

  <script src="https://cdnjs.cloudflare.com/ajax/libs/pikaday/1.5.1/pikaday.min.js"></script>

  <script src="http://cdn.anitur.com.tr/example/flexdatalist/flexdatalist.js"></script>

</body>

</html>

最佳答案

在我处理了通过 http 而不是 https 加载文件的所有问题后,您的大部分代码都没有问题。

此解决方案的核心是在 pickaday 配置中使用 onSelect,而不是 onClose 并定义您的 assignPicker 没有 var 的函数。

https://codepen.io/anon/pen/VPWaJo

关于javascript - 使用数据列表自动下一个焦点到日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41806528/

相关文章:

javascript - 测试特定用例后减少没有初始值的空数组

jQuery数据表json初始化无效json

javascript - 如何实现自动调整到您的视口(viewport)的滚动效果

javascript - 单击鼠标中键时发出 Jquery 警报?

html - Javascript - 扩展 div 以适应内容但不扩展到容器之外

html - 异常值 : string indices must be integers : Render bundle error vue + django

javascript - 各种加载函数/方法的执行顺序是什么

javascript - 使用变量值作为函数名

javascript - 如何使用js在两个aspx页面之间进行通信?

javascript - 简单的 RequireJS 测试不起作用