2017-01-20 4 views
1

код для маскировки время (чч: мм: сс)Может ли входная маска JQUERY добавить строку для даты и времени?

$('.time').each(function() { 
     $(this).inputmask({ 
       mask: "h:s:s", 
       placeholder: "00:00:00", 
       alias: "datetime", 
       hourFormat: "24" 
     }); 
}); 

Как замаскировать DateTime, который также принимает строку как NONE? Можно ввести текст, но только значение None действует NONE или 01:00:00

Я использую библиотеку JQuery inputmask (https://github.com/RobinHerbots/jquery.inputmask).

ответ

2

Вы не должны использовать alias и mask, так как вы не объявляя alias а просто позвонив inputmask() с options.

Вот решение с комментариями.

$('.time').inputmask({ 
    mask:'(h:s:s)|(X)', // X will define our new validator , | mean OR 
    definitions: { 
     "X": { 
      // Needed since you need the word(NONE) comparaison 
      validator: function(chrs) {return chrs.toUpperCase().localeCompare('NONE')==0 }, 
      cardinality: 4, // Mean 1 instance of our new validator(X) has a value of 4 chars 
      prevalidator: [ 
       {validator: function(chrs){return chrs.toUpperCase().localeCompare('N')==0 },cardinality:1}, 
       {validator: function(chrs){return chrs.toUpperCase().localeCompare('NO')==0 },cardinality:2}, 
       {validator: function(chrs){return chrs.toUpperCase().localeCompare('NON')==0 },cardinality:3} 
      ], 
      casing: "upper" // All chars will be casted as UPPER but not during our custom validation 
     } 
    } 
}) 

С дэтой в нем :)

$('.time').inputmask({ 
    mask:'(h:s:s)|(X)', // X will define our new validator , | mean OR 
    regex: Inputmask().opts.aliases.datetime.regex, //Needed for the imported validator 
    placeholder: "00:00:00", //To get 00:00:00 in place __:__:__ 
    hourFormat: "24", // or 12 
    definitions: { 
     "h": Inputmask().opts.aliases.datetime.definitions.h, // first char > 2 will become 09: 
     "s": Inputmask().opts.aliases.datetime.definitions.s, //first char for minute/second if > 5 become 09 
     "X": { 
      // Needed since you need the word(NONE) comparaison 
      validator: function(chrs) {return chrs.toUpperCase().localeCompare('NONE')==0 }, 
      cardinality: 4, // Mean 1 instance of our new validator(X) has a value of 4 chars 
      prevalidator: [ 
       {validator: function(chrs){return chrs.toUpperCase().localeCompare('N')==0 },cardinality:1}, 
       {validator: function(chrs){return chrs.toUpperCase().localeCompare('NO')==0 },cardinality:2}, 
       {validator: function(chrs){return chrs.toUpperCase().localeCompare('NON')==0 },cardinality:3} 
      ], 
      casing: "upper" // All chars will be casted as UPPER but not during our custom validation 
     } 
    } 
}) 
+0

Woah это работает! твой мужчина сэр зелень! возможно ли иметь такое же поведение, как в datetime, когда вы вводите его автоматически добавляет 00:00 в 24 часа? – mrrsb

+0

Я не уверен, что именно вы спрашиваете, вы вместо '__: __' вместо '__: __' или wan' 08: __', когда пользователь вводит 8 в качестве первого ключа. Посмотрите здесь [https://github.com/RobinHerbots/Inputmask/blob/3.x/js/inputmask.date.extensions.js#L224](https://github.com/RobinHerbots/Inputmask/blob/3. x/js/inputmask.date.extensions.js # L224) 'maskset' является текущим дисплеем, поэтому просто играйте с ним внутри превалирующего устройства – greenseed

+0

Uhm both? сначала его 00:00 вместо _: _ и когда пользователь вводит в 8 сначала, он становится 08:00 – mrrsb

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