javascript 输入类型日期的操作是如何工作的?

9ceoxa92  于 5个月前  发布在  Java
关注(0)|答案(1)|浏览(67)

所以我试图创建一个页面,要求用户输入一些信息,包括生日,然后在最初的空跨度显示这些信息,但我想知道它是如何工作的,

<input type="date" id="birth">

字符串
然后在脚本标记中

<script>
var a = document.getElementById('birth').value;
</script>


现在“a”是一个带有设置值的新日期()吗?或者它到底是如何工作的?因为我试图执行一个函数,如果用户单击带有onclick事件的按钮,它不会被执行,这让我怀疑日期类型是如何开始工作的。
我试图将类型日期更改为类型文本,并让用户输入日期为“dd/mm/yyyy”,然后收集它,但我再次不知道我们是否有每个示例

<input type="text" id="birth2">


如果我做了

<script>
var b = document.getElementById('birth2').value; 
</script>


我可以把“B”转换成一个数组()(每个项目是由“/”分隔),然后控制,如果日期是正确的(没有负值,月份是1和12之间.

ulydmbyx

ulydmbyx1#

使用<input type="date">时,从document.getElementById('birth').value中获取的值是一个字符串,表示格式为'YYYY-MM-DD'的日期。它不会自动转换为JavaScriptDate对象。如果您想将其作为Date对象使用,则需要显式转换它:

<input type="date" id="birth">
    <button onclick="displayDate()">Display Date</button>
    
    <script>
    function displayDate() {
      var dateString = document.getElementById('birth').value;
      var dateObject = new Date(dateString);
      console.log(dateObject);
    }
    </script>

字符串
如果您选择使用<input type="text">作为日期输入,则可以将值拆分为数组并手动验证日期:

<input type="text" id="birth2">
<button onclick="validateDate()">Validate Date</button>

<script>
function validateDate() {
  var dateString = document.getElementById('birth2').value;
  var dateArray = dateString.split('/');

  var day = parseInt(dateArray[0], 10);
  var month = parseInt(dateArray[1], 10);
  var year = parseInt(dateArray[2], 10);

  // Perform your validation here
  if (isValidDate(day, month, year)) {
    console.log('Valid date');
  } else {
    console.log('Invalid date');
  }
}

function isValidDate(day, month, year) {
  // Perform your validation logic
  // For example: Check if day, month, and year are within valid ranges
  return day > 0 && day <= 31 && month > 0 && month <= 12 && year > 0;
}
</script>


isValidDate函数中,您可以根据自己的需求添加更复杂的验证规则。

相关问题