我在体育比赛中使用Bootstrap Datetimepicker表示活动时间。
时间以分钟为单位,以秒为单位,事件可能发生在23:11和62:17。但是,插件只允许最多59分钟的分钟值。
我可以以某种方式让插件允许其他分钟值吗?
目前我有一个输入
<input type="text" class="form-control event-time" value="00:00">
我像这样绑定插件:
$('.event-time').datetimepicker({format: 'mm:ss'});
使用该插件的主要原因是它为用户清理输入。例如,如果用户输入4.15
,则会在模糊时自动更改为04:15
。并且无效值将更改为空字段,从而向用户显示无法理解输入。
答案 0 :(得分:0)
如果有人有类似的消毒时间输入问题,我最终编写了javascript(jQuery),可以自动修改输入为minutes:seconds
格式。
这是功能和最小的例子。
尝试输入1:23
89m29s
或5468
之类的内容,它会转换为89:29
格式的某些有效值,通常与预期值相似。
function fixTime(field)
{
var input = field.val()
var delimiterPos = input.search(/\D/); //find the first non-numeric symbol
//everything numerical before that symbol is minutes
var minutes = parseInt(input.substring(0, delimiterPos)) || 0;
//everything numerical after that symbol is seconds
var seconds = parseInt(input.substring(delimiterPos + 1)) || 0;
//limit minutes to 100 and seconds to 60. Might be different in other cases
minutes = minutes % 100;
seconds = seconds % 60;
//casting to string
minutes = '' + minutes;
seconds = '' + seconds;
//prepending zeros to make values contain two symbols
minutes = ('00'+minutes).substring(minutes.length);
seconds = ('00'+seconds).substring(seconds.length);
field.val(minutes + ':' + seconds);
}
//usage example
var timeToFix = $('.time-to-fix')
timeToFix.change(function() {
fixTime(timeToFix);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="time-to-fix">
&#13;