Unmask datetime - входная маска - PullRequest
0 голосов
/ 05 октября 2018

Использование Маска ввода версия vanilla js.

Возникли проблемы с разоблачением формата даты и времени:

var expDate = document.getElementById('expDate');

Inputmask({
    alias: 'datetime',
    inputFormat: 'mm/yy',
    placeholder: 'month/year',
    autoUnmask: true,
    clearMaskOnLostFocus: false
}).mask(expDate);

autoUnmask не работает, expDate.value возвращает 12/12хотя должно возвращаться 1212.

Ответы [ 2 ]

0 голосов
/ 06 октября 2018

Я создал минимальный пример, и опция autoUnmask работает, возможно, есть некоторые конфликты с псевдонимом: 'datetime' или inputFormat: 'mm / yy'.Прочтите следующую документацию, которая доступна на веб-сайте плагина:

псевдонимы

С помощью псевдонима вы можете определить определение сложной маски и вызвать его, используя имя псевдонима.Так что это в основном для упрощения использования ваших масок.Некоторые псевдонимы, найденные в расширениях: электронная почта, валюта, десятичное число, целое число, дата, дата и время, дд / мм / гггг и т. Д.

Сначала необходимо создать определение псевдонима.Определение псевдонима может содержать параметры маски, настраиваемые определения, маску для использования и т. Д.

При передаче псевдонима псевдоним сначала разрешается, а затем применяются другие параметры.Таким образом, вы можете вызвать псевдоним и передать другую маску, которая будет применена к псевдониму.Это также означает, что вы можете писать псевдонимы, которые «наследуются» от другого псевдонима.

Некоторые примеры можно найти в jquery.inputmask.xxx.extensions.js

format

Вместо маскирования элемента ввода также можно использовать маску ввода для форматирования заданных значений.Подумайте о значениях форматирования, которые будут отображаться в jqGrid или других элементах, а затем вводятся.

var formattedDate = Inputmask.format ("2331973", {alias: "datetime", inputFormat: "dd / mm / yyyy"});

Как вы можете видеть, datetime - это определенный псевдоним (вы можете проверить определение в inputmask.date.extensions.js ), а inputFormat используется длядругие цели.В следующем примере один вход с параметром autoUnmask настроен на true , а другой со значением по умолчанию false :

// Get the inputs fields

var expDate1 = document.getElementById('expDate1');
var expDate2 = document.getElementById('expDate2');

// Apply masks on the inputs.

Inputmask({
    alias: 'date',
    autoUnmask: true,
    clearMaskOnLostFocus: false
}).mask(expDate1);

Inputmask({
    alias: 'date',
    clearMaskOnLostFocus: false
}).mask(expDate2);

// Alert values.

function getValuesFromInputs()
{
    var msg = "Value of Input1 with autoUnmask=true: " + expDate1.value;
    msg += "\n"
    msg += "Value of Input2 with autoUnmask=false: " + expDate2.value;

    alert(msg);
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/dependencyLibs/inputmask.dependencyLib.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/inputmask/inputmask.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/inputmask/inputmask.extensions.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.inputmask/3.3.4/inputmask/inputmask.date.extensions.js"></script>

<input type="input" id="expDate1"/>
<input type="input" id="expDate2"/>
<button type="button" onclick="getValuesFromInputs()">Get Values</button>
0 голосов
/ 06 октября 2018

outputFormat: ddmm делает то, что мне нужно, но это не упоминается в документации этого плагина.

...