【问题标题】:How to create to select from year to year in html forms?如何在 html 表单中创建逐年选择?
【发布时间】:2021-10-21 08:09:23
【问题描述】:

我想用户输入从今年到那年,然后我需要将年份列表转发给 django?但在此之前如何创建那种输入,我发现了类似的东西,但它不能满足我的需要。有什么想法吗?

<select name="yearpicker" id="yearpicker"></select>

<script type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"> 
</script>
<script type="text/javascript">
let startYear = 1800;
let endYear = new Date().getFullYear();
for (i = endYear; i > startYear; i--)
{
    $('#yearpicker').append($('<option />').val(i).html(i));
}
</script>

【问题讨论】:

  • 要用户选择,例如,从 1990 年到 2018 年,我可以将其作为列表,例如 this years = [1990, 1991, 1992, ....., 2017, 2018 ]

标签: javascript html django forms select


【解决方案1】:

您可以监听change 事件并使用Array.from 填充某个范围内的数组:

Start: <select name="yearpicker" id="yearpicker"></select>
<br/>
End: <select name="yearpicker2" id="yearpicker2"></select>

<script type="text/javascript"
        src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"> 
</script>
<script type="text/javascript">
let startYear = 1800;
let endYear = new Date().getFullYear();
for (i = endYear; i > startYear; i--)
{
    $('#yearpicker, #yearpicker2').append($('<option />').val(i).html(i));
}

$('select').on('change', function(){
  let arr = Array.from({length:$('#yearpicker2').val() - +$('#yearpicker').val()},(v,k)=>k + +$('#yearpicker').val())
  console.log(arr);
})
</script>

【讨论】:

  • 这还不错,但用户如何选择结束年份(不一定是 2020 年)
  • @project.py 你对 2 个select 元素还好吗?
  • 是的,没问题
  • 非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-20
  • 1970-01-01
相关资源
最近更新 更多