首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >禁用选择假想日期

禁用选择假想日期
EN

Stack Overflow用户
提问于 2015-06-10 20:06:35
回答 3查看 57关注 0票数 0

因为我有两个选择框,一个月(一月至十二月)和一个日(1-31).

我想禁用不存在的月份组合

  • 二月三十日及三十一日
  • 四月三十一日
  • 六月三十一日
  • 九月三十一日
  • 十一月三十一日

代码:

代码语言:javascript
运行
复制
<sel><span>Month:</span>
    <select required name="month">
        <option value="">Select</option>
        <option value="01">January</option>
        <option value="12">December</option>
    </select>
</sel>
<br />

<sel><span>Day:</span>
    <select required name="day">
        <option value="">Select</option>
        <option value="1">1</option>
        <option value="31">31</option>
    </select>
</sel>

Jquery可以做到,但我做不到。

EN

回答 3

Stack Overflow用户

发布于 2015-06-10 20:18:36

无论何时从列表中选择任何选项,它都会触发一个change事件。可以将事件绑定到此更改事件,并实现检查当前月和日组合的逻辑。

E.g

代码语言:javascript
运行
复制
$('select[name="month"]').change(function () {
   var currentMonth = this.value;
   switch (currentMonth) {
     case '01'://for January
     case '02'://for February
       disableDay(30);
       disableDay(31);
     ...
     ...
   }
});

若要在“选择下拉列表”中选择任何选项,请执行以下操作

代码语言:javascript
运行
复制
$('select[name="day"]').find('option[value="31"]').prop('disabled', true);

因此,您可以实现一个函数,在“日”下拉列表中禁用“日”,并根据月份进行相应的月下拉更改调用,并传递正确的禁用日期。

代码语言:javascript
运行
复制
function disableDay (day) {
   $('select[name="day"]').find('option[value="'+day+'"]').prop('disabled', true);
}
票数 1
EN

Stack Overflow用户

发布于 2015-06-10 20:15:35

使用预先制作好的库https://jqueryui.com/datepicker/,它更简单、更干净。否则将是大量的jquery,在月份更改、检查日期、添加/删除以匹配月份.

票数 0
EN

Stack Overflow用户

发布于 2015-06-10 20:27:04

它有点丑,但它能满足你的要求.

代码语言:javascript
运行
复制
jQuery(document).ready(function($){
  var m = $('select[name=month]');
  var d = $('select[name=day]');
  var hide31 = ['02','04','06','09','11'];
  var hide30 = ['02'];
  var d31 = d.find('[value=31]');
  var d30 = d.find('[value=30]');
  m.change(function(){
    var v = m.val();
    if (hide30.indexOf(v)>=0){  d30.hide();  }
    else { d30.show();  }
    if (hide31.indexOf(v)>=0){  d31.hide();  }
    else { d31.show();  }
  });
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30766273

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档