Циклы кнопок для создания нескольких сборщиков дат Jquery

В Flask представление должно возвращать одно из следующего:

  • строка
  • a Response объект (или подкласс)
  • кортеж (string, status, headers) или (string, status)
  • действительное приложение WSGI

Тесты флажков для первых 3 параметров, и если они не подходят, предполагает это является четвертым. Вы вернули True где-нибудь, и вместо этого оно рассматривается как приложение WSGI.

См. О ответах в документации.

0
задан MichaelRSF 29 March 2019 в 11:39
поделиться

1 ответ

В вашем коде есть две проблемы. Во-первых, вы не предоставляете элементам input, которые вы создаете, с любым атрибутом id, поэтому ваш селектор не работает. Во-вторых, второй цикл повторяется по j, а не по i, поэтому последняя строка должна быть $(dateIdsHash[j]).datepicker();. Tyr this:

var ul = document.getElementById("date-list");
var dateIds = ["datepicker1", "datepicker2", "datepicker3"];
var dateIdsHash = ["#datepicker1", "#datepicker2", "#datepicker3"];
var dateNumbers = ["1", "2", "3"];
var count = 0;
var dateNumbersCounted;
var dateIdsCounted;

function countButton() {
  for (var i = 0; i < 3; i++) {
    ul.innerHTML += "<li class='my-date'>Date " + dateNumbers[i] + " <input type='text' id='" + dateIdsHash[i].replace('#', '') + "'></li><br>";
  };

  var tags = document.getElementsByTagName("input");
  for (var j = 0; j < tags.length; j++) {
    tags[j].id = dateIds[j];
    $.datepicker.setDefaults({
      changeMonth: true,
      changeYear: true,
      dateFormat: "yy-mm-dd"
      //  any more global options from Datepicker Widget | jQuery UI API Documentation
    })
    $(dateIdsHash[j]).datepicker();
  };
}
#date-list {
  list-style: none;
<script type="text/javascript" src="//code.jquery.com/jquery-git.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css">

<center>
  <button onclick="countButton()">Count</button>
  <ul id="date-list"></ul>
</center>

При этом, вы можете сделать эту логику гораздо более краткой, если вы использовать методы jQuery.

var $ul = $("#date-list");
var $countButton = $('#count').on('click', function() {
  var li = (new Array(3)).fill('<li class="my-date">Date <input type="text" /></li>');
  $ul.append(li);
  $('.my-date input').datepicker();
});
#date-list {
  list-style: none;
}
.my-date {
  margin: 0 0 15px;
}
<script type="text/javascript" src="//code.jquery.com/jquery-git.js"></script>
<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js"></script>
<link rel="stylesheet" type="text/css" href="//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.css">

<center>
  <button id="count">Count</button>
  <ul id="date-list"></ul>
</center>

0
ответ дан Rory McCrossan 29 March 2019 в 11:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: