2016-11-17 5 views
0

私はBootstrap Datetimepickerをスポーツゲームのイベントの時間に使用しています。Bootstrap datetimepickerで59分を超える分を取得する方法

時間は分単位で測定され、イベントは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に変更されます。無効な値が空のフィールドに変更され、入力が理解できないことをユーザーに示します。

+1

のDateTimePickerは、時間の長さは、日中の時間をない選択するために使用されます。 – Barmar

+0

@Barmar代わりに何を使うべきですか? –

+0

テキストまたは数字入力を使用するだけです。 – Barmar

答えて

0

誰かが同様の問題を抱えている場合は、入力を自動修正してminutes:secondsという形式のjavascript(jQuery)を作成しました。

ここに関数と最小限の例を示します。

1:2389m29sまたは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); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<input type="text" class="time-to-fix">

関連する問題