【问题标题】:JS set minimum date for HTML input date with an IFJS为带有IF的HTML输入日期设置最小日期
【发布时间】:2019-06-30 06:48:28
【问题描述】:

抱歉我的错误,但我很菜鸟 :D 我必须在带有 IF 的 HTML 输入中设置最小日期: 如果今天是 > 01-06-2019 设置最小值到今天 ELSE 将最小值设置为 01-06-2019 有谁能够帮我?这是我的代码:

function setMin1() {
	var varData = new Date('01-06-2019'); //dd-mm-YYYY
	var today = new Date();
	today.setHours(0,0,0,0);

	if(varData >= today) {
		document.getElementById('set').min = '01-06-2019';
	}
	else {
		document.getElementById('set').min = '<?php echo date('d-m-Y');?>';
	}
}

【问题讨论】:

标签: javascript html date input min


【解决方案1】:

我认为您正在寻找的是 setAttribute 方法:

document.getElementById('set').setAttribute('min', '01-06-2019');

【讨论】:

  • 这似乎是 jQuery 和 javascript 的不幸组合。 DOM elements 没有 attr 方法。如果要设置属性的值,请使用setAttributedocument.getElementById('set').setAttribute('min', '01-06-2019')
【解决方案2】:

它不起作用,因为您将字符串传递给您的输入。您输入类型的编号。 您可以改用数据类型。

【讨论】:

  • 你能解释一下怎么做吗?
  • 首先将输入类型从数字更改为日期:并使用正确的格式 (Y-m-d) 设置最小、最大属性。在此处查看更多信息developer.mozilla.org/fr/docs/Web/HTML/Element/Input/date
  • 您应该在答案中包含该评论。
  • "您的输入类型的编号"。你怎么知道? OP 没有说明输入类型是什么,我希望 date。输入类型日期的值应为 YYYY-MM-DD(又名“ISO”)格式。
【解决方案3】:

我猜输入是类型date。您可以使用 min 属性设置最小值,例如

<input type="date" name="someDate" min="2019-01-01">

请注意,在 HTML 中,ISO 8601 格式的日期将被视为本地日期,但在由内置 ECMAScript 解析器解析时将被视为 UTC。

如果您使用脚本设置值,则您依赖于主机系统的时钟是否准确。可以使用 setAttribute 设置值:

window.onload = function(){

  var d = new Date();

  // Build ISO 8601 format date string
  var s = d.getFullYear() + '-' + 
          ('0' + (d.getMonth()+1)).slice(-2) + '-' +
          ('0' + d.getDate()).slice(-2);

  // Set the value of the value and min attributes
  var node = document.querySelector('input');
  if (node) {
    node.setAttribute('min', s);
    node.setAttribute('value', s);
  }
}
<form onsubmit="return false;">
  <input type="date"><br>
  <input type="reset">
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 2015-11-29
    • 1970-01-01
    • 1970-01-01
    • 2019-10-04
    相关资源
    最近更新 更多