Этот Javascript, который использует функции из jQuery, очень удобен, но, получая обратную связь, есть некоторые ограничения, которые, я надеюсь, вы, ребята, могли бы помочь мне преодолеть.
Функция в основном создает текстовое поле с отформатированным временем (ЧЧ: ММ: СС), чтобы пользователям было легче вводить время, а не использовать средство выбора даты, которое включает много нажатий.
Code:
//global variable for keeping count on how many times the function is called
var i = 0;
//for adding formatted time fields
function timemaker()
{
//creates an input field of text type formatted with a value of "00:00:00"
var input = $("<input>",
{
name: 'time'+i, // e.g. time0, time1, time2, time3
value: '00:00:00',
maxlength: '8',
size: '6'
});
//this function which uses jquery plugin causes the cursor in the field to goto position zero
//when selected making it easier for the user to enter times and not need to select the correct position
input.click(function()
{
$(this).prop({
selectionStart: 0,
selectionEnd: 0
});
//this child function moves the cursor along the text field
//when it reaches the first ":" it jumps to the next "00"
}).keydown(function() {
if (event.keyCode == 9)
{
return;
}
else
{
var sel = $(this).prop('selectionStart'),
val = $(this).val(),
newsel = sel === 2 ? 3: sel;
newsel = sel === 5 ? 6: newsel;
$(this).val(val.substring(0, newsel) + val.substring(newsel + 1))
.prop({
selectionStart: newsel,
selectionEnd: newsel
});
}
});
//this appends the text field to a divved area of the page
input.appendTo ( "# события");
я ++;
вернуть;
}
00: 00: 00
Ограничения Мне нужна помощь с
- Скажем, например, что вы хотели ввести время 12:45:00, вы
очевидно, не нужно вводить часть секунд (последний "00"), так как они
уже там. Таким образом, вы решаете перейти из этого текстового поля
но JavaScript интерпретирует ваше нажатие клавиши «Tab» как запись и
удаляет ноль из поля, в результате чего значение будет похоже на 12: 45: 0
- Не проверяет входные данные для 24-часового формата - как вы думаете, это будет
можно это сделать? например первое число, которое вы вводите, "2", поэтому
только у вас есть варианты "0,1,2,3"
- Если вы допустили ошибку в 4-й цифре и повторно выбрали текстовое поле
Вы должны ввести все снова.