2013-06-02 40 views
-1

我正在寻找JavaScript的一些date.parse()帮助。我一直在寻找不同的论坛和网站,仍然无法找到一个体面的例子来说明如何实现这一点。我正在开始一个网页设计课,我的老师要求我这样做:“将文本框的占位符文本设置为”输入日期“。为文档添加一个空白段落标记集。在单独的JavaScript文件中编码按钮的事件处理程序以设置段落文本以指明输入的值是否是可识别的日期格式。如果传递有效的日期字符串和特殊值NaN(不是),则Date.parse()方法将返回一个数字一个数字),否则NaN可以检查使用内置函数isNaN()(你可能希望参考你的在线资源获取关于Date对象的更多信息,NaN和isNaN()。)“我一直在到大量显示字符串的网站,但我需要一个虚拟实例来说明如何实际使用它。这里是我对按钮的html代码:date.parse不知道如何实现

<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(变量),但不知道如何确保它可以是一个有效的格式。日期可以通过多种方式输入。我应该制作一系列可能的日期并以这种方式进行验证吗?还是有更简单的选择?如果不能在这里提供答案,指向伟大指南的链接也会有所帮助。感谢您的时间。

更新;这是我现在使用的。它中途工作。它警告一个空集。我只是无法解析以提醒:

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); 
} 
} 
+0

这是'Date.parse'(JS是区分大小写),而你已经被告知哪些调用此方法将返回 - 那么,是实际的问题? – CBroe

+0

谢谢你的案例提醒。问题是我不知道如何放入Date.parse。我猜它可能是其他{Date.parse(dateString)。 – Techjimbob

回答

0

我希望everthing是可以理解的。

<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]); 
0

日期可以在众多的输入方法。我应该制作一系列可能的日期并以这种方式进行验证吗?

没有数组。您应该只接受Date.parse确实接受:

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

识别” 确实提到Date.parse capatibilites我说。这是微不足道的实施,则:

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

// grab the paragraph 
if (valid) 
    // set the paragraph text accordingly 
else 
    // output something different 
+0

你把它拼出来了,我仍然无法启动它,我已经更新了我的代码。我究竟做错了什么。它不会作为本地文件工作吗?或者我只是一个愚蠢的人? – Techjimbob

+0

您正在从函数返回布尔型“有效”。你不应该输出它吗? – Bergi

相关问题