如何限制使用 jquery 键盘的输入中的字符数?
HTML
<input id="num-input" type="text" maxlength="3" disabled>
查询
var $numInput;
$(function() {
initKeyboard($('#numeric-keyboard'), $('#num-input'));
$('#num-input').on('keydown', function(e) {
$('#event').text('key: '+e.keyCode);
});
$('#back').on('click', onBackBtn);
$('#forward').on('click', onForwardBtn);
});
function onBackBtn() {
$('input').first().focus();
}
function onForwardBtn() {
$('input').last().focus();
}
function initKeyboard($keyboard, $input) {
$numInput = $input;
$keyboard.on('click', '.key', onKeyPress);
}
function onKeyPress(e) {
var keyValue = $(this).text();
if(keyValue.toLowerCase() === 'delete') {
keyValue = 8;
} else if(keyValue === '') {
return;
} else {
keyValue = keyValue.charCodeAt(0);
}
var e = $.Event("keydown");
e.which = keyValue;
e.keyCode = keyValue;
$numInput.trigger(e);
if(keyValue !== 8) {
$numInput.val( $numInput.val() + $(this).text() );
} else {
$numInput.val( $numInput.val().slice(0, -1) );
}
}
maxlenght 被忽略,我尝试$numInput.val( $numInput.val() + $(this).text() );使用 var max=3; 将 if 子句添加到这部分代码中 但再次没有运气。
我还尝试使用此代码脚本来限制该输入的字符数,但 jquery 再次超越它并继续添加字符。
我需要为它设置 3 个字符的限制。
任何想法?