Маска ввода даты в access
Содержание:
Alias definitions
date aliases
$(document).ready(function(){ $("#date").inputmask("dd/mm/yyyy"); $("#date").inputmask("mm/dd/yyyy"); $("#date").inputmask("date"); // alias for dd/mm/yyyy });
The date aliases take leapyears into account. There is also autocompletion on day, month, year.
For example:
input: 2/2/2012 result: 02/02/2012
input: 352012 result: 03/05/2012
input: 3530 result: 03/05/2030
input: rightarrow result: the date from today
numeric aliases
$(document).ready(function(){ $("#numeric").inputmask("decimal"); $("#numeric").inputmask("non-negative-decimal"); $("#numeric").inputmask("integer"); });
There is autocompletion on tab with decimal numbers.
Define the radixpoint
$(document).ready(function(){ $("#numeric").inputmask("decimal", { radixPoint: "," }); });
Define the number of digits after the radixpoint
$(document).ready(function(){ $("#numeric").inputmask("decimal", { digits: 3 }); });
Grouping support through: autoGroup, groupSeparator, groupSize
$(document).ready(function(){ $("#numeric").inputmask("decimal", { radixPoint: ",", autoGroup: true, groupSeparator: ".", groupSize: 3 }); });
Customization
Initalization
If you are ok with all the default options you can have masked-inputs initalize it self and avoid writing any JavaScript at all. Simply add the attribute to your script tag
Alternativly if you need to pass custom options or want to initalize the script your self you can do so like this
new InputMask( *options* );
masked
Don’t like the class for a selector? Pass an options object instead and set your selector with the masked property or event pass a .
// Selector new InputMask({ masked: ".custom-selector" }); // Node List new InputMask({ masked: nodeList });
number
Want to use something other than X? right now the script handles XdDmMyY9 for numeric placeholding. MM/YY and mm/yy will work fine. Want to use something else, simply pass an options object setting the option.
// Selector new InputMask({ number: 'XZdDmMyY9' });
letter
Want to use something other than X in your placeholder look for masked inputs that require both letters and numbers, you can. You can put different characters in your placeholder, as long as your contains Xs and _ only.
<input placeholder="XXX XXX" pattern="\w\d\w \d\w\d" class="masked" data-charset="?X? X?X" id="zipca" type="text" name="canadianzip" title="6-character alphanumeric code in the format of A1A 1A1">
If you require _ as a special character in your mask? Simply pass an options object setting the option, and also the value of in your HTML.
new InputMask({ letter: '?' });
<input placeholder="XXX_XXX" pattern="\w\d\w\_\d\w\d" class="masked" data-charset="?X?_X?X" id="underscore" type="text" name="underscoredstring" title="6-character alphanumeric code in the format of A1A_1A1">
onError
Want to add error handling? Simply pass a function to the option. The function will recieve the keyboard event as the first paramater.
new InputMask({ onError: function( e ) { // Handle your errors! } });
noValidate
As the pattern attribute is being used, you may want to add via javascript the novalidate attribute on any ancestor or form control to disable native browser validation. Do add it via JS, because if the JS fails, native validation is a good alternative.
You can have input masking do this for you by setting the option to true.
new InputMask({ noValidate: true });
Exceptions
Complex Regular Expressions
If the digits allowed by your regular expression are constrained or complicated, such as months only allowing 01-12, include a made up attribute that takes as its value a valid value that would match the pattern.
<label for="expiration"> Credit Card Expiration </label> <input id="expiration" type="tel" placeholder="MM/YY" class="masked" pattern="(1|0)\/(1|2\d)" data-valid-example="11/18" title="2-digit month and 2-digit year greater than 01/15">
I’ve taken care of MM in , because that is common. If you have exceptions, add the exceptions there. If you need an expiration month, it is best to use instead.
Define custom definitions
You can define your own definitions to use in your mask.Start by choosing a masksymbol.
Next define your validator. The validator can be a regular expression or a function.
The return value of a validator can be true, false or a command object.
-
pos : position to insert
-
c : character to insert
-
caret : position of the caret
-
remove : position(s) to remove
pos or
-
insert : position(s) to add :
- { pos : position to insert, c : character to insert }
-
refreshFromBuffer :
- true => refresh validPositions from the complete buffer
- { start: , end: } => refresh from start to end
Cardinality specifies how many characters are represented and validated for the definition.
The prevalidator option is used to validate the characters before the definition cardinality is reached. (see ‘j’ example)
When you insert or delete characters, they are only shifted when the definition type is the same. This behavior can be overridden by giving a definitionSymbol. (see example x, y, z, which can be used for ip-address masking, the validation is different, but it is allowed to shift the characters between the definitions)
Inputmask.extendDefinitions({'f'{"validator""[0-9\(\)\.\+/ ]","cardinality"1,'prevalidator'null},'g'{"validator"function(chrs,buffer,pos,strict,opts){}"cardinality"1,'prevalidator'null},'j'{ validator"(19|20)\\d{2}", cardinality4, prevalidator{ validator"", cardinality1},{ validator"(19|20)", cardinality2},{ validator"(19|20)\\d", cardinality3}},'x'{ validator"", cardinality1, definitionSymbol"i"},'y'{validatorfunction(chrs,buffer,pos,strict,opts){var valExp2 =newRegExp("2|");returnvalExp2.test(bufferpos -1+ chrs);}, cardinality1, definitionSymbol"i"},'z'{validatorfunction(chrs,buffer,pos,strict,opts){var valExp3 =newRegExp("25|2|");returnvalExp3.test(bufferpos -2+ bufferpos -1+ chrs);}, cardinality1, definitionSymbol"i"}});
Specify a placeholder for a definition.
Defaults can be set as below.
Inputmask.extendDefaults({'autoUnmask'true});Inputmask.extendDefinitions({'A'{ validator"[A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5", cardinality1, casing"upper"},'+'{ validator"[0-9A-Za-z\u0410-\u044F\u0401\u0451\u00C0-\u00FF\u00B5", cardinality1, casing"upper"}});Inputmask.extendAliases({'Regex'{ mask"r", greedyfalse,...}});
But if the property is defined within an alias you need to set it for the alias definition.
Inputmask.extendAliases({'numeric'{ allowPlusfalse, allowMinusfalse}});
However, the preferred way to alter properties for an alias is by creating a new alias which inherits from the default alias definition.
Inputmask.extendAliases({'myNum'{ alias"numeric", placeholder'', allowPlusfalse, allowMinusfalse}});
Once defined, you can call the alias by:
$(selector).inputmask("myNum");
All callbacks are implemented as options. This means that you can set general implementations for the callbacks by setting a default.
Inputmask.extendDefaults({onKeyValidationfunction(key,result){if(!result){alert('Your input is not valid')}}});
Supported markup options
data-inputmask attribute
You can also apply an inputmask by using the data-inputmask attribute. In the attribute, you specify the options wanted for the inputmask. This gets parsed with $.parseJSON (for the moment), so be sure to use a well-formed JSON-string without the {}.
<input data-inputmask="'alias': 'datetime'" /> <input data-inputmask="'mask': '9', 'repeat': 10, 'greedy' : false" />
$(document).ready(function(){ $(":input").inputmask(); });
data-inputmask-<option> attribute
All options can also be passed through data-attributes.
<input data-inputmask-mask="9" data-inputmask-repeat="10" data-inputmask-greedy="false" />
$(document).ready(function(){ $(":input").inputmask(); });
.NET Nuget Package Install
PM> Install-Package jQuery.InputMask
In App_Start, BundleConfig.cs
bundles.Add(new ScriptBundle("~/bundles/inputmask").Include( "~/Scripts/jquery.inputmask/jquery.inputmask-{version}.js", "~/Scripts/jquery.inputmask/jquery.inputmask.extensions-{version}.js", "~/Scripts/jquery.inputmask/jquery.inputmask.date.extensions-{version}.js", "~/Scripts/jquery.inputmask/jquery.inputmask.numeric.extensions-{version}.js"));
In Layout
@Scripts.Render("~/bundles/inputmask")
#=========== TODO ===========
getemptymask command
return the default (empty) mask value
$(document).ready(function(){ $("#test").inputmask("999-AAA"); var initialValue = $("#test").inputmask("getemptymask"); // initialValue => "___-___" });
onKeyUp / onKeyDown option
Use this to do some extra processing of the input when certain keys are pressed.
This can be usefull when implementing an alias, ex. decimal alias, autofill the digits when pressing tab.
see jquery.inputmask.extensions.js for some examples
onBeforePaste
This callback allows for preprocessing the pasted value before actually handling the value for masking. This can be usefull for stripping away some characters before processing.
$(document).ready(function(){ $("#test").inputmask("99.", { repeat: 4, onBeforePaste: function (pastedValue) { //do somehing with the value return pastedValue; } }); });
onBeforeMask
This callback allows for preprocessing the initial value before actually handling the value for masking. This can be usefull for stripping away some characters before processing.
$(document).ready(function(){ $("#test").inputmask("99.", { repeat: 4, onBeforeMask: function (initialValue) { //do somehing with the value return initialValue; } }); });
hasMaskedValue
Check whether the returned value is masked or not; currently only works reliably when using jquery.val fn to retrieve the value
$(document).ready(function(){ function validateMaskedValue(val){} function validateValue(val){} var val = $("#test").val(); if($("#test").inputmask("hasMaskedValue")) validateMaskedValue(val); else validateValue(val); });
Поле ввода
Проконсультироватьсясо специалистом 1С
Для 1с поле ввода с типом строка можно применить маску ввода. В 1с маска задает формат представления данных и ограничивает вводимой информации. Это очень удобно бывает во многих жизненных задачках, например ввод телефона, ввод специального кода или представления номера. В 1с маску можно задать как интерактивно «в режиме конфигуратора», так и программно.
Для 1с поле ввода маска доступны следующие форматы ограничители. Ввод только числовых данных: * 9 – вводятся только цифры * # – вводятся цифры и знаки «+» «-» и пробел * h ввод шестеричных цифр
Ввод цифр и букв: * @ – ввод символов алфавита, и при этом они будут преобразованы в верхний регистр * N – разрешен ввод алфавитных символов но уже можно контролировать регистр. * U – вводи символов алфавита с преобразованием в верхней регистр. Отличие между U и @ не смог найти. * ! – любой введенный символ автоматический преобразуется к верхнему регистру * X – разрешен ввод только латиницы
Для запрет ввода символа «^» в 1с поле ввода, необходимо прописать этот символ в маску
В маске могут присутствовать специальные символы «.» , «(», «)», «-» и «,» и некоторые другие, они позволяют форматировать строку.
Например, нам нужно указать, что номер вводится с указанием кода города. То нужно прописать 1с маску ввода «9 (999) 999 99 99» или «9 (999) 999-99-99». Все зависит от требуемого формата представления строки. Или допустим нам нужно ввести формат дополнительного номера накладной типа «код подразделение.месяц.год», тогда маска будет «UUUU.99.9999» или «UUUU/99/9999»
Стоит помнить что, задавая маску – мы обязаны задать её полностью такой длины, какой длины вводится строка. Либо если существуют несколько форматов строки, короткий и длинный – то можно задать две и более масок, через запятую.
Например, вводим сотовый телефон клиента, либо городской (без указания кода города), тогда 1c маска будет 9 (999) 999-99-99;999-99-99
Из справки 1С: ПолеВвода (TextBox) — Маска (Mask) Использование: Чтение и запись. Описание: Тип: Строка. Содержит посимвольную строку маски интерактивного ввода текста в поле. В строке маски допустимо использование следующих специальных символов: ! — любой введенный символ преобразуется в верхний регистр; 9 — допустимо ввести произвольный символ цифры; # — допустимо ввести произвольный символ цифры или — (знак минус) или + (знак плюс) или пробел; N — допустимо ввести любые алфавитно-цифровые символы (буквы или цифры); U — допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) и любой введенный символ преобразуется в верхний регистр; X (латинского алфавита) — допустимо ввести произвольный символ; ^ — не допустимо вводить этот символ интерактивно пользователем, он может устанавливаться только из языка; h — допустим ввод символов обозначения шестнадцатеричных цифр; @ – допустимо ввести любые алфавитно-цифровые символы (буквы или цифры) в верхнем регистре или пробел. При помещении значения из поля ввода с маской в текстовый реквизит, связанный с этим полем ввода, происходит следующее преобразование: на тех позициях, где в маске стоит символ «@», а в строке пробел – пробел удаляется. Если в маске из специальных символов используются только символы «@», то все символы текста, соответствующие символам маски, не являющимся специальными символами, удаляются после по-следнего непустого блока из символов «@». Например, при маске «@@.@@.@@.» текст «41. 2. .» преобразуется в «41.2». Для того, чтобы использовать в маске один из специальных символов, нужно использовать перед ним символ «». Допускается указание нескольких масок в одном параметре. Маски разделяются символом «;». В этом случае использоваться будет та маска, к которой подходит введенный текст. Недоступно на сервере 1С:Предприятие. Не используется в модуле внешнего соединения.
Properties
Name | Type | Default | ||||
---|---|---|---|---|---|---|
disabled | Boolean | false | ||||
Sets or gets whether the widget is disabled. $('#jqxMaskedInput').jqxMaskedInput({ disabled: true}); Get the property. Try it: disabled is set to true |
||||||
height | Number/String | null | ||||
Sets or gets height of the masked input in pixels. $('#jqxMaskedInput').jqxMaskedInput({ height: '25px'}); Get the property. Try it: height is set to ’25px’ |
||||||
mask | String | ‘#####’ | ||||
Sets or gets the masked input’s mask. Mask characters:
Get the property. Try it: mask is set to ‘###-##-####’ |
||||||
promptChar | String | «_» | ||||
Sets or gets the prompt char displayed when an editable char is empty. $('#jqxMaskedInput').jqxMaskedInput({ promptChar: "." }); Get the property. Try it: promptChar is set to «#» |
||||||
readOnly | Boolean | false | ||||
Sets or gets the readOnly state of the input. $('#jqxMaskedInput').jqxMaskedInput({ readOnly: true }); Get the property. Try it: readOnly is set to true |
||||||
rtl | Boolean | false | ||||
Sets or gets a value indicating whether widget’s elements are aligned to support locales using right-to-left fonts. Get the property. Try it: rtl is set to true |
||||||
theme | String | » | ||||
Sets the widget’s theme. jQWidgets uses a pair of css files — jqx.base.css and jqx..css. The base stylesheet creates the styles related to the widget’s layout like margin, padding, border-width, position. The second css file applies the widget’s colors and backgrounds. The jqx.base.css should be included before the second CSS file.
Try it: theme is set to ‘energyblue’ |
||||||
textAlign | String | left | ||||
Sets or gets the text alignment. Possible Values: Initialize a MaskedInput with the property specified. $('#jqxMaskedInput').jqxMaskedInput({ textAlign: "right"}); Get the property. Try it: textAlign is set to ‘right’ |
||||||
value | String | null | ||||
Sets or gets the masked input’s value. Get the property. Try it: value is set to 300 |
||||||
width | Number/String | null | ||||
Sets or gets width of the masked input in pixels. Only positive values have effect. $('#jqxMaskedInput').jqxMaskedInput({ width: '250px'}); Get the property. Try it: width is set to ‘250px’ |
||||||
change | Event | |||||
This event is triggered when the value is changed and the control’s focus is lost. Bind to the event by type: jqxMaskedInput. Try it: Bind to the change event by type:jqxMaskedInput |
||||||
valueChanged | Event | |||||
This event is triggered when the value is changed. Bind to the event by type: jqxMaskedInput. Try it: Bind to the valueChanged event by type:jqxMaskedInput |
||||||
clear | Method | |||||
Clears the value.
Return ValueNone Invoke the method. Try it: clears the jqxMaskedInput |
||||||
destroy | Method | |||||
Destroys the widget.
Return ValueNone Invoke the method. Try it: destroys the jqxMaskedInput |
||||||
focus | Method | |||||
Focuses the widget.
Return ValueNone Invoke the method. Try it: focuses the jqxMaskedInput |
||||||
val | Method | |||||
Sets or gets the value.
Return ValueString Get the value using the val method. // Get the value using jQuery’s val. Set the value using the val method. // Set the value using jQuery’s val. Try it: sets the value of the jqxMaskedInput |
General
set a value and apply mask
this can be done with the traditional jquery.val function (all browsers) or JavaScript value property for browsers which implement lookupGetter or getOwnPropertyDescriptor
$(document).ready(function(){ $("#number").val(12345); var number = document.getElementById("number"); number.value = 12345; });
with the autoUnmaskoption you can change the return of $.fn.val (or value property) to unmaskedvalue or the maskedvalue
$(document).ready(function(){ $('#<%= tbDate.ClientID%>').inputmask({ "mask": "d/m/y", 'autoUnmask' : true}); // value: 23/03/1973 alert($('#<%= tbDate.ClientID%>').val()); // shows 23031973 (autoUnmask: true) var tbDate = document.getElementById("<%= tbDate.ClientID%>"); alert(tbDate.value); // shows 23031973 (autoUnmask: true) });
auto upper/lower- casing inputmask
You can define within a definition to automatically lowercase or uppercase the entry in an input by giving the casing.Casing can be null, «upper» or «lower»
Inputmask.extendDefinitions({ 'A': { validator: "", cardinality: 1, casing: "upper" //auto uppercasing }, '+': { validator: "", cardinality: 1, casing: "upper" } });
Include jquery.inputmask.extensions.js for using the A and # definitions.
$(document).ready(function(){ $("#test").inputmask("999-AAA"); // => 123abc ===> 123-ABC });
date & datetime extensions
$(document).ready(function(){ $(selector).inputmask("dd/mm/yyyy"); $(selector).inputmask("mm/dd/yyyy"); $(selector).inputmask("date"); // alias for dd/mm/yyyy $(selector).inputmask("date", {yearrange: { minyear: 1900, maxyear: 2099 }}); //specify year range });
The date aliases take leap years into account. There is also autocompletion on day, month, year.
For example:
input: 2/2/2012 result: 02/02/2012
input: 352012 result: 03/05/2012
input: 3/530 result: 03/05/2030
input: ctrl rightarrow result: the date from today
$(document).ready(function(){ $(selector).inputmask("datetime"); // 24h $(selector).inputmask("datetime12"); // am/pm });
Определение пользовательского символа маски
Вы можете определить свои собственные символы для использования в вашей маске. Начните с выбора символа маски.
валидатор(chrs, maskset, pos, strict, opts)
Затем определите свой валидатор. Проверка может быть регулярным выражением или функцией.
Возвращаемое значение валидатор может быть истинным, ложным или объектом.
Опциональные команды
-
pos : позиция для вставки
-
c : символ для вставки
-
caret : позиция каретки
-
remove : позиция (позиции) для удаления
pos или
-
insert : позиции (позиций) для добавления :
- { pos : позиция вставки, c : символ для вставки }
-
refreshFromBuffer :
- true => refresh validPositions from the complete buffer
- { start: , end: } => refresh from start to end
prevalidator(chrs, maskset, pos, strict, opts)
Опция предварительной проверки используется для проверки символов перед кардинальным определением, которое будет достигнуто. (См ‘J’ пример)
definitionSymbol
При вставке или удалении символов, они смещаются только тогда, когда определение типа является то же самое. Такое поведение может быть отменено, давая definitionSymbol. (См пример х, у, z, который может быть использован для IP-адреса маски, проверка отличается, но допускается сдвиг символов между определениями)
Inputmask.extendDefinitions({ 'f': { //masksymbol "validator": "[0-9\(\)\.\+/ ]", "cardinality": 1, 'prevalidator': null }, 'g': { "validator": function (chrs, buffer, pos, strict, opts) { //do some logic and return true, false, or { "pos": new position, "c": character to place } } "cardinality": 1, 'prevalidator': null }, 'j': { //basic year validator: "(19|20)\\d{2}", cardinality: 4, prevalidator: { validator: "", cardinality: 1 }, { validator: "(19|20)", cardinality: 2 }, { validator: "(19|20)\\d", cardinality: 3 } }, 'x': { validator: "", cardinality: 1, definitionSymbol: "i" //это позволяет сдвига значениt из других определений, с тем же символом маски или определения символа }, 'y': { validator: function (chrs, buffer, pos, strict, opts) { var valExp2 = new RegExp("2|"); return valExp2.test(bufferpos - 1 + chrs); }, cardinality: 1, definitionSymbol: "i" }, 'z': { validator: function (chrs, buffer, pos, strict, opts) { var valExp3 = new RegExp("25|2|"); return valExp3.test(bufferpos - 2 + bufferpos - 1 + chrs); }, cardinality: 1, definitionSymbol: "i" } });
set defaults
Значения по умолчанию могут быть установлены, как показано ниже.
Inputmask.extendDefaults({ 'autoUnmask': true }); Inputmask.extendDefinitions({ 'A': { validator: "", cardinality: 1, casing: "upper" //автоматический перевод в верхний регистр }, '+': { validator: "", cardinality: 1, casing: "upper" } }); Inputmask.extendAliases({ 'Regex': { mask: "r", greedy: false, ... } });
Но если свойство определяется в качестве псевдонима необходимо установить его для определения псевдонима.
Inputmask.extendAliases({ 'numeric': { allowPlus: false, allowMinus: false } });
Тем не менее, предпочтительный способ, чтобы изменить свойства псевдонима путем создания нового псевдонима, который наследуется из определения псевдонима по умолчанию.
Inputmask.extendAliases({ 'myNum': { alias: "numeric", placeholder: '', allowPlus: false, allowMinus: false } });
После того, как определено, вы можете вызвать псевдоним с помощью:
$(selector).inputmask("myNum");
Все обратные вызовы реализованы в виде опций. Это означает, что вы можете установить общие для реализации обратных вызовов путем установки по умолчанию.
Inputmask.extendDefaults({ onKeyValidation: function(key, result){ if (!result){ alert('Ваше введенное значение не верно') } } });
Usage:
Include the js-files which you can find in the dist-folder. You have the bundled file which contains the main plugin code and also all extensions (date, numerics, other) or if you prefer to only include some parts, use the separate js-files in the dist/min folder.
The minimum to include is the jquery.inputmask.js
<script src="jquery.js" type="text/javascript"></script> <script src="jquery.inputmask.js" type="text/javascript"></script>
Define your masks:
$(document).ready(function(){ $(selector).inputmask("99-9999999"); //static mask $(selector).inputmask("mask", {"mask": "(999) 999-9999"}); //specifying fn & options $(selector).inputmask({"mask": "99-9999999"}); //specifying options only $(selector).inputmask("9-a{1,3}9{1,3}"); //mask with dynamic syntax });
or via data-inputmask attribute
<input data-inputmask="'alias': 'date'" /> <input data-inputmask="'mask': '9', 'repeat': 10, 'greedy' : false" /> <input data-inputmask="'mask': '99-9999999'" />
$(document).ready(function(){ $(":input").inputmask(); });
Any option can also be passed through the use of a data attribute. Use data-inputmask-<the name op the option>=»value»
<input id="example1" data-inputmask-clearmaskonlostfocus="false" /> <input id="example2" data-inputmask-regex="[a-za-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:(?:*)?\.)+(?:*)?" />
$(document).ready(function(){ $("#example1").inputmask("99-9999999"); $("#example2").inputmask("Regex"); });
Default masking definitions
- 9 : numeric
- a : alphabetical
There are more definitions defined within the extensions.
You can find info within the js-files or by further exploring the options.