2013-06-02 1 views
-1

Я ищу некоторую помощь date.parse() для JavaScript. Я искал разные форумы и сайты и до сих пор не смог найти достойный пример того, как это реализовать. Я беру начальный класс веб-дизайна, и мой инструктор попросил меня сделать это: «Установите текст заполнителя для текстового поля« Введите дату ». Добавьте пустой тег абзаца, установленный в документе. В отдельном файле JavaScript закодируйте обработчик события для кнопки, чтобы установить текст абзаца, чтобы указать, является ли введенное значение распознаваемым форматом даты. Метод Date.parse() возвращает число, если передано действительная строка даты, и специальное значение NaN (не число) в противном случае. 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

Надеюсь, что все будет понятно.

<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> 

Когда порядок дня, месяца и года не так, то просто изменить шаблон ввода поля и это codeline:

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

Вы «возвращаете» логическую функцию «valid» из вашей функции.Разве вы не должны выводить его? – Bergi

Смежные вопросы