2016-03-04 6 views
0

Я пытаюсь ввести время и вернуть его обратно, чтобы я мог его предупредить. Я получаю две ошибки: 1) «time.split не является функцией» (я думаю, это потому, что я не передаю строку 2), когда я пытаюсь добавить .toString() либо к аргументу, либо к time.toString () .split (/: /), он не возвращается корректно. Как мне заставить его предупредить время? Благодаря!Ошибка ввода времени ввода

function changeTime(time) { 
    time = time.split(/:/); 

    if (time[0] < 12) { 
     return (time[0] + time[1] + " AM"); 
    } else if (time[0] == 12) { 
     return (time[0] + time[1] + " PM"); 
    } else if(time[0] > 12) { 
     return ((time[0] - 12) + time[1] + " PM"); 
    } else { 
     return("Please enter a valid time!"); 
    } 
} 

getTime.addEventListener('click', function() { 
    alert("The time is " + changeTime(timeText)); 
}); 

EDIT: вот мои поля ввода для "timeText" и "GetTime"

<button id="getTime">Get Time</button> 
    <input type="time" id="timeText" /> 
+0

что 'timeText'? –

+0

@RajaprabhuAravindasamy Я думаю, что это строка 'time.split (/: /)' –

+0

Тогда что такое 'time'? Чтобы было легко оценить и ответить. –

ответ

1

Похоже timeText это поле ввода. В этом случае, чтобы получить строку, вы должны вызвать свойство value.

Я также хотел бы сделать пару улучшений вашей функции

  1. Ваше время показывал что-то вроде этого 400PM. Я улучшил его, теперь он показывает 4:00PM.
  2. Я также проверил, было ли поле времени имело значение. Только если бы это произошло, я бы предупредил время. Ранее он показал The time is undefined pm

var getTime = document.getElementById("get-time"); 
 
var timeText = document.getElementById("time-text"); 
 

 
function changeTime(time) { 
 
    time = time.split(/:/); 
 

 
    if (time[0] < 12) { 
 
     return (time[0] + ":" + time[1] + " AM"); 
 
    } else if (time[0] == 12) { 
 
     return (time[0] + ":" + time[1] + " PM"); 
 
    } else if(time[0] > 12) { 
 
     return ((time[0] - 12) + ":" + time[1] + " PM"); 
 
    } else { 
 
     return("Please enter a valid time!"); 
 
    } 
 
} 
 

 
getTime.addEventListener('click', function() { 
 
    if (timeText.value) { 
 
     alert("The time is " + changeTime(timeText.value)); 
 
    } 
 
});
<input id="time-text" type="time"> 
 

 
<button id="get-time">Get Time</button>

+0

Это определенно правильно, но единственная проблема, с которой я сейчас сталкиваюсь, это то, что 12:30 AM возвращается как 00:30 –

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