Статьи

Добавлена ​​проверка HTML5 на экранную клавиатуру

Некоторое время назад я загрузил демо (усовершенствования экранной клавиатуры jQuery ). Так как я добавил поддержку проверки формы HTML5. В функции записи он в основном проверяет входные данные для правил проверки HTML5 для определения выходной записи. Это суть этого:

Посмотреть демо клавиатуры Посмотреть демо клавиатуры

write: function(m) {

var $el = jsKeyboard.currentElement,
val = $el.val(),
charStr = String.fromCharCode(m),
pos = jsKeyboard.currentElementCursorPosition,
output = [val.slice(0, pos), charStr, val.slice(pos)].join(''),
doWrite = true;

//max length - html5: maxlength="x"
if ($el.attr('maxlength'))
{
doWrite = (output.length <= $el.attr('maxlength'));
}

//allow numbers only - html5: number attribute
if (doWrite && $el.hasAttr('datatype'))
{
if ($el.attr('number'))
{
doWrite = !isNaN(charStr);
}
}

//more HTML5 validation rules here...

//if passed validation do it.
if (doWrite)
{
$el.val(output);
jsKeyboard.currentElementCursorPosition++; //+1 cursor
}
jsKeyboard.updateCursor();

}

write: function (m) {

var $ el = jsKeyboard.currentElement,
val = $ el.val (),
charStr = String.fromCharCode (m),
pos = jsKeyboard.currentElementCursorPosition,
output = [val.slice (0, pos), charStr, val.slice (pos)]. join (”),
doWrite = true;

// максимальная длина — html5: maxlength = ”x”
if ($ el.attr (‘maxlength’))
{
doWrite = (output.length <= $ el.attr (‘maxlength’)); } // разрешаем только числа — html5: атрибут number if (doWrite && $ el.hasAttr (‘datatype’)) {if ($ el.attr (‘number’)) {doWrite =! isNaN (charStr); }} // другие правила проверки HTML5 здесь … // если пройдена проверка, сделайте это. if (doWrite) {$ el.val (output); jsKeyboard.currentElementCursorPosition ++; // + 1 курсор} jsKeyboard.updateCursor (); } [/ js]