Так что я пытаюсь взять США номер социального страхования в качестве входных данных и пытается замаскировать его, автоматически вставляя тире, не позволяя более чем 9 цифр и т.д.ввода маски в JQuery - без использования библиотеки
Пожалуйста, смотрите Fiddle.
Мои проблемы с кода:
Я отключил клавиши со стрелками, то есть, потому что если кто-то возвращается с помощью клавиш со стрелками и прижимает забой (сделать правку к определенному номеру), мой код брейки, и он вставляет дополнительные тире, что неприемлемо.
Мой код выглядит следующим образом:
$('#ssn').on("keyup change paste mouseup", function(evt) {
setTimeout(function() {
var $ssn = $('#ssn');
var $length = $ssn.val().length;
var $value = $ssn.val();
$ssn.val(formatSSN($value));
}, 10);
});
// Start of section that prevents arrow keys
$('#ssn').on("click focus", function(evt) {
var value = $(this).val();
$(this).val('').val(value);
});
$('#ssn').on("keydown", function(evt) {
var key = evt.keyCode;
if (key >= 37 && key <= 40) {
$(this).focus();
var value = $(this).val();
$(this).val(' ').val(value);
evt.stopPropagation();
return false;
}
});
// End of section that prevents arrow keys
function formatSSN(inputSSN) {
var dashPositions = [3, 6];
var inputLength = inputSSN.length;
var output = inputSSN;
for (i in dashPositions) {
if (dashPositions[i] < inputLength) {
if (output[dashPositions[i]] !== '-') {
var firstPart = output.substring(0, dashPositions[i]) + '-';
var secondPart = output.substring(dashPositions[i]);
output = firstPart + secondPart;
}
}
}
if (output.length > 11) {
output = output.substring(0, 11);
}
return output;
}
Мой вопрос:
Есть ли способ, что я могу включить клавиши со стрелками, и по-прежнему сохраняют позиции черточек? (предотвратить лишние/неуместные тире)?
Спасибо.
короткий ответ ДА – madalinivascu
попробовать это его маленький и простой, и может дать представление вам .. https://raw.githubusercontent.com/digitalBush/jquery.maskedinput/1.4 .1/dist/jquery.maskedinput.js – daremachine
Возможный дубликат http://stackoverflow.com/questions/25367230/masking-a-social-security-number-input – guest271314