Passcoder - это библиотека jquery, которую я создал и будет выпущен. Он разбивает поле ввода на односимвольные поля ввода (например, код доступа iPhone). Одна из функций, с помощью которой можно сфокусировать следующий входной сигнал, который вы нажимаете на кнопку.jquery .next ('input'). Focus()
Проблема, кажется, в том, что .next('.passcoder')
не делает то, что ожидается. В первом ряду входов (входы employee_name) он будет вести себя так, как ожидалось, но когда предполагается сфокусировать первый входной пароль (от четвертого имени сотрудника до пароля), .next('.passcoder')
ничего не возвращает.
Разметка:
<form action="" method="post"
<h4>Employee Number</h4>
<input type="text" class="single-character-name passcoder" name="employee_number-0">
<input type="text" class="single-character-name passcoder" name="employee_number-1">
<input type="text" class="single-character-name passcoder" name="employee_number-2">
<input type="text" class="single-character-name passcoder" name="employee_number-3">
<br>
<h4>Employee Passcode</h4>
<input type="password" class="single-character-password passcoder" name="employee_passcode-0">
<input type="password" class="single-character-password passcoder" name="employee_passcode-1">
<input type="password" class="single-character-password passcoder" name="employee_passcode-2">
<input type="password" class="single-character-password passcoder" name="employee_passcode-3">
<br />
<br />
<input class="btn btn-success" type="submit">
<a class="btn">Cancel</a>
</form>
Javascript (Jquery):
$('.passcoder').keyup(function(e){
if (e.which == 8){
//backspace
$(this).prev('input').focus();
}
else if(e.which > 47 && e.which < 58){
$(this).next('.passcoder').focus();
}
else{
$(this).val('');
return false;
}
});
$ (это) .val (''); вместо value() – mkutyba
извините, я исправил это в коде после того, как ввел его здесь. Извините, что –