Ввод времени по маске
Здравствуйте! Проблема такая:
Есть поле для ввода времени, на него при помощи плагина jquery.maskedinput-1.2.2 установила маску 00:00. Маска работает! Проблема в том что если вводишь 89:69 то ошибки естесно нет, а надо бы!!! Код такой : jQuery(function($) { $('#eITDbegintime').mask('99:99'); $('#eITDendtime').mask('99:99'); }); как сделать так чтобы если число не подходит оно не вводилось, в общем как правильно маску то задать? :-) |
Можно пофиксить так, не залезая в код плагина:
(function () { var mask = $.fn.mask; $.fn.mask = function ( a ) { var t = a.split( ":" ); if ( +t[0] > 24 || +t[1] > 60 ) { throw "Некорректное время"; } else { return mask( a ); } }; })(); |
ну в принципе просто, только не пойму как потом маску к полю привязать то???
|
Так же.
Цитата:
|
так не работает( маска отображается по прежнему и по прежнему можно вводить 99:99. На форме много полей которые нужно заполнять, и можно сделать проверку при сохранении к примеру, но хотелось бы чтобы сразу
|
exec,
хотелось бы взглянуть на рабочий пример ? skalka, пока могу предложить только слегка сузить диапазон <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script> <script type="text/javascript" src="http://jquery-joshbush.googlecode.com/files/jquery.maskedinput-1.2.2.min.js" ></script> <script language="JavaScript" type="text/javascript"> jQuery(function($) { $.mask.definitions['H']='[012]'; $.mask.definitions['M']='[012345]'; $('#eITDbegintime').mask('H9:M9'); $('#eITDendtime').mask('H9:M9'); }); </script> </head> <body> <input id="eITDbegintime" type="text" /> <input id="eITDendtime" type="text" /> </body> </html> |
ВО!!!! То что надо, спасибо)))
|
огромное спасибо
|
рони,
Ваш пример хорош, но в нем можно ввести 29:59 и 24:59, как можно ограничить?) |
Цитата:
http://www.moskva.fm/what/ |
Цитата:
$('.js-input-time').mask( "99:99", { placeholder: "_", completed: function() { var val = $(this).val().split(':'); if ( val[0]*1 > 23) val[0] = '23'; if ( val[1]*1 > 59) val[1] = '59'; $(this).val( val.join(':') ); $(this).next(':input').focus(); } } ); и конечно там слегка новее сам плагин чем тут теме |
:write: итого...
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script type="text/javascript" src="http://digitalbush.com/wp-content/uploads/2013/01/jquery.maskedinput-1.3.1.min_.js" ></script> <script> $(function () { $.mask.definitions['H']='[012]'; $.mask.definitions['M']='[012345]'; $('#eITDbegintime').mask('H9:M9',{ placeholder: "_", completed: function() { var val = $(this).val().split(':'); if ( val[0]*1 > 23) val[0] = '23'; if ( val[1]*1 > 59) val[1] = '59'; $(this).val( val.join(':') ); $(this).next(':input').focus(); } } ); $('#eITDendtime').mask('H9:M9',{ placeholder: "_", completed: function() { var val = $(this).val().split(':'); if ( val[0]*1 > 23) val[0] = '23'; if ( val[1]*1 > 59) val[1] = '59'; $(this).val( val.join(':') ); //$(this).next(':input').focus(); } } ); }) </script> </head> <body> <input id="eITDbegintime" type="text" /> <input id="eITDendtime" type="text" /> </body> </html> |
|
Часовой пояс GMT +3, время: 12:12. |