Объяснение
Я успешно использую «тип ввода = дата» в качестве средства выбора даты в начальной загрузке 5.3, чтобы выбрать дату для просмотра данных.
У меня проблема: мне нужно щелкнуть по нему, чтобы оно стало видимым.
В моей ситуации он должен быть всегда виден, как календарь Javascript.
Вопрос
Как этого можно достичь?
Код
<form id = "Create" method = "post" asp-page-handler = "CreateDate" >
<input class = "btn btn-secondary " type = "date" name='newdate' onchange='this.form.submit()' >
Bootstrap 5 не имеет средства выбора даты. Это обычный ввод HTML.
Используйте приведенные ниже ссылки CDN и приведенную ниже функцию для вызова ввода даты.
$('#datepkr').datepicker({
uiLibrary: 'bootstrap5'
});
<script src = "https://code.jquery.com/jquery-3.3.1.min.js"></script>
<link href = "https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel = "stylesheet" integrity = "sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin = "anonymous">
<script src = "https://unpkg.com/[email protected]/js/gijgo.min.js" type = "text/javascript"></script>
<link href = "https://unpkg.com/[email protected]/css/gijgo.min.css" rel = "stylesheet" type = "text/css" />
<input id = "datepkr" width = "280" />
он должен быть виден при загрузке страницы, а не после нажатия на нее.
ох, ладно... смотри другой ответ. onload виден также onclick видим.
Бутстрап 5.0.2? Почему? Гиджго? Почему?
Поскольку встроенный HTML input type = "date"
не поддерживает постоянную видимость. Вы можете интегрировать Bootstrap Datepicker и сделать его всегда видимым.
$(document).ready(function(){
$('.datepicker-container').datepicker({
format: 'yyyy-mm-dd',
todayHighlight: true,
autoclose: true
}).on('changeDate', function(e) {
$('#newdate').val(e.format('yyyy-mm-dd')).change();
});
});
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<meta name = "viewport" content = "width=device-width, initial-scale=1.0">
<title>Datepicker Always Visible</title>
<link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css">
<link rel = "stylesheet" href = "https://stackpath.bootstrapcdn.com/bootstrap/5.3.0/css/bootstrap.min.css">
</head>
<body>
<div class = "container">
<form id = "Create" method = "post" asp-page-handler = "CreateDate">
<div class = "datepicker-container"></div>
<input type = "hidden" name = "newdate" id = "newdate" onchange = "this.form.submit()">
</form>
</div>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script>
</body>
</html>
Это не похоже на стиль Bootstrap. И календарь исчезает после нажатия.
Этой библиотеке более 10 лет, она требует Bootstrap 2.0.4+ и jQuery 1.7.1+. Зачем вам использовать ее в любом новом проекте?
использовать все CDN
<link rel = "stylesheet" href = "https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel = "stylesheet" href = "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/css/bootstrap-datepicker.min.css">
<!-- jQuery -->
<script src = "https://code.jquery.com/jquery-3.5.1.min.js"></script>
<!-- Bootstrap JS -->
<script src = "https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
<!-- Datepicker JS -->
<script src = "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.9.0/js/bootstrap-datepicker.min.js"></script>
используйте эту дату ввода и этот скрипт
<div class = "container mt-5">
<input type = "text" id = "datepicker" class = "form-control">
</div>
<script>
$(document).ready(function(){
$('#datepicker').datepicker({
autoclose: true
});
$('#datepicker').datepicker('show');
});
</script>
Бутстрап 4.5.2? Почему?
Это просто делает всплывающий календарь видимым изначально, но не делает календарь видимым всегда.
Вы используете Bootstrap 4 и Bootstrap 5 одновременно? Если нет, исправьте теги вопросов и в любом случае предоставьте минимально воспроизводимый пример, позволяющий воспроизвести проблему.