-1

我正在为 JavaScript 寻找一些 date.parse() 帮助。我一直在搜索不同的论坛和网站,但仍然无法找到一个很好的例子来说明如何实现这一点。我正在上一门初级网页设计课程,我的老师要求我这样做:“将文本框的占位符文本设置为“输入日期”。在文档中添加一个空的段落标记集。在单独的 JavaScript 文件代码中,按钮的事件处理程序设置段落文本以说明输入的值是否是可识别的日期格式。Date.parse() 方法将返回如果传递了有效的日期字符串,则为数字,否则为特殊值 NaN(不是数字)。可以使用内置函数 isNaN() 检查 NaN。(您可能需要参考您的在线资源以获取有关日期对象、NaN 和 isNaN()。)" 我去过很多显示字符串的网站,但我需要一个简单的例子来说明如何实际使用它。这是我的按钮的html代码:

<body>
<form>
<input type="text" id="dateTextInput" size="40" placeholder="Please Enter A Date">
<input type="button" id="addButton" value="Enter a Date">
</form>
<p></p>
</body>

这是我的 .js 文件:

window.onload = init;

function init() {
var button = document.getElementById("addButton");
button.onclick = handleButtonClick;
}

function handleButtonClick() {
var textInput = document.getElementById("addDateButton");
var dateString = textInput.value;

if (dateString == "") {
alert("Please enter a date");
}
else {

我的问题是在我的其他问题之后,如果这甚至是合适的。我迷失了如何实现 date.parse 函数。我知道它是 date.parse(variable) 但不确定如何确保它是有效的格式。可以通过多种方式输入日期。我应该制作一系列可能的日期并以这种方式验证吗?还是有更简单的选择?如果此处无法提供答案,则指向出色指南的链接也会有所帮助。感谢您的时间。

更新; 这是我现在使用的。它成功了一半。它警告空集。我只是无法让解析发出警报:

function handleButtonClick() {
var textInput = document.getElementById("dateTextInput");
var dateString = textInput.value;
var dateValue = Date.parse(dateString);
var valid = !isNaN(dateValue);

if (dateString == "") {
    alert("Please enter a date");

} else {
  return(valid);
}
}
4

2 回答 2

0

可以通过多种方式输入日期。我应该制作一系列可能的日期并以这种方式验证吗?

没有数组。您应该只接受接受的内容Date.parse

输入的值是否是可识别的日期格式。如果传递一个有效的日期字符串,该Date.parse()方法将返回一个数字,否则返回 NaN。

可识别”确实指的是Date.parse我所说的能力。实现起来很简单:

var dateValue = Date.parse(dateString);
var valid = !isNaN(dateValue);

// grab the paragraph
if (valid)
   // set the paragraph text accordingly
else
   // output something different
于 2013-06-02T17:01:03.227 回答
0

我希望一切都可以理解。

<form id="dateForm">
    <!-- pattern just allow such format X.X.XXXX Or XX.XX.XXXX Or X.XX.XXXX Or XX.X.XXXX -->

    <input type="text" id="dateTextInput" size="40" pattern="^\d{1,2}.\d{1,2}.\d{4,4}$" placeholder="Please Enter A Date">
    <input type="submit" id="addButton" value="Enter a Date">
</form>


<script>
// onsubmit ist just called when dateTextInput is empty or has got valid date
document.getElementById('dateForm').onsubmit = function(e){

    e.preventDefault(); // avoid to reload page
    var date = document.getElementById('dateTextInput').value;

    if(date === ''){ // always use === because == is sometimes buggy
      alert('Please enter a date');
    }
    else{
      var convertedDate = date.split('.'); // -> ['03','06','1985']
      convertedDate = new Date(convertedDate[2],convertedDate[1],convertedDate[0]);
      console.log(convertedDate.getTime()); // I think you wanted to get Milliseconds, but this works just as well
    }

    return false;

};
</script>

当日、月、年的顺序不正确时,只需编辑输入字段的模式和此代码行:

convertedDate = new Date(convertedDate[2],convertedDate[1],convertedDate[0]);
于 2013-06-02T16:43:59.183 回答