В Flask представление должно возвращать одно из следующего:
Response
объект (или подкласс) (string, status, headers)
или (string, status)
Тесты флажков для первых 3 параметров, и если они не подходят, предполагает это является четвертым. Вы вернули True где-нибудь, и вместо этого оно рассматривается как приложение WSGI.
См. О ответах в документации.
В вашем коде есть две проблемы. Во-первых, вы не предоставляете элементам 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>