Javascript 选择选项时在HTML上显示日期

Javascript 选择选项时在HTML上显示日期,javascript,html,loops,html-select,Javascript,Html,Loops,Html Select,我正在处理一个HTML文件,它有一个月的下拉列表。当我选择一个月时,我希望函数以以下格式在页面上显示该月的日期: 2020年12月1日 2020年12月2日 . . . 2020年12月31日 以下是我的html: 我无法获取要在选项select上执行的函数。你能帮我看看剧本有什么问题吗?我还不是javascript方面的专家,但我一直在探索和试验HTML和javascript 请注意,当我在这两个月执行函数时,我将添加其他月份的代码 var-ord=”“; var i; var fullda

我正在处理一个HTML文件,它有一个月的下拉列表。当我选择一个月时,我希望函数以以下格式在页面上显示该月的日期:

2020年12月1日
2020年12月2日
.
.
.
2020年12月31日

以下是我的html:

我无法获取要在选项select上执行的函数。你能帮我看看剧本有什么问题吗?我还不是javascript方面的专家,但我一直在探索和试验HTML和javascript

请注意,当我在这两个月执行函数时,我将添加其他月份的代码

var-ord=”“;
var i;
var fulldate;
变量y=“”;
var m=document.getElementById(“月”);
var mv=m.值;
函数showdates(){
如果(mv=“12月”){
fulldate=“”;
y=“2020”;
对于(i=1;i<32;i++){
如果(i>3&&i<21){
ord=“th”;
}else如果(i==1 | | i==21 | | i==31){
ord=“st”;
}else如果(i==2 | | i==22){
ord=“nd”;
}else如果(i==3 | | i==23){
ord=“rd”;
}否则{
ord=“th”;
}
完整日期+=i+ord+“+mv+”“+y+”
“; } }否则,如果(mv==“一月”){ fulldate=“”; y=“2021”; 对于(i=1;i<32;i++){ 如果(i>3&&i<21){ ord=“th”; }else如果(i==1 | | i==21 | | i==31){ ord=“st”; }else如果(i==2 | | i==22){ ord=“nd”; }else如果(i==3 | | i==23){ ord=“rd”; }否则{ ord=“th”; } 完整日期+=i+ord+“+mv+”“+y+”
“; } } document.getElementById(“日期”).innerHTML=fulldate; }
选择月份
十二月 一月

我认为这一行应该在
showdates()函数中

function showdates(){
var mv = m.value;
...
...
}
  • 在脚本中,需要在函数内移动mv,但
  • 添加“请选择”
  • 不要重复你自己
  • 这里有一个更好的脚本

    const nth=d=>{
    如果(d>3&&d<21)返回“th”;
    开关(d%10){
    案例1:返回“st”;
    案例2:返回“nd”;
    案例3:返回“rd”;
    默认值:返回“th”;
    }
    };
    const showdates=函数(){
    常数mv=该值;
    const monthName=this.options[this.selectedIndex].text;
    document.getElementById(“日期”).innerHTML=“”;
    如果(!mv)返回;//停止
    const now=新日期()
    让yyy=now.getFullYear();
    
    如果(mv),这远远不足以使脚本正常工作。请参阅我的答案
    function showdates(){
    var mv = m.value;
    ...
    ...
    }