Вопрос

Я пытаюсь написать сценарий, который проверяет ввод пользователя.Нравиться:длина буквы более 5 или пароль и повторно вводимый пароль совпадают.Но как узнать, какое поле ввода в форме было нажато?я использовал

$(function() {
    $('#register input').keyup(function() {
        if ($('#username').val().length < 5) {
            $('a.username').text("Please fill");
        } else {
            $('a.username').text("");
        }

        if ($('#password').val().length < 5) {
            $('a.password').text("asdasd");
        } else {
            $('a.password').text("");
        }

    });
});​

И

Новое имя пользователя

        <label for="password">Password</label> <input type="password" id="password" name="password"><a class="password"></a>

    </fieldset>
</form>

Когда я нажимаю один из элементов ввода, код запускается и видит, что второй ввод пароля также не является полным полем и вторым. <a> тег также срабатывает.Должен ли я использовать несколько .keyup функции для каждого элемента, или есть ли способ узнать, какой элемент щелкнули?Нравиться

if (clicked == $("input#username") && $('#username').val().length < 5) {
    $('a.username').text("Please fill");

} else {
    $('a.username').text("Please fill");

}​

но это не работает.Я думаю, должно быть что-то подобное.

Это было полезно?

Решение

Вы можете использовать $(this) внутри обработчика для ссылки на элемент keyup событие произошло .Кроме того, вы можете использовать .next() перейти от него к <a> вы устанавливаете текст, например:

$('#register input').keyup(function(){
  $(this).next().text($(this).val().length < 5 ? "Please fill" : "");
});

Другие советы

Как правило, вам следует использовать конкретную привязку событий, если вы хотите получить определенные события, а не получать их все и выполнять собственную фильтрацию.(Если бы вы хотели сделать это по-другому, вам бы хотелось посмотреть на или this, $(this) или событие, в зависимости.)

Однако для проверки формы уже есть код.Например, плагин проверки jQuery для общей проверки формы и расширение специально для паролей.На вашем месте я бы, по крайней мере, начал с одного из них, а не создавал что-то с нуля.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top