Буквенно-цифровая проверка не работает в jquery

мой код приведен ниже, все необходимые файлы js включены.

<?php 
    echo $this->Html->script('jquery');
    echo $this->Html->script('jquery-ui');
    echo $this->Html->script('jquery.validate');
    echo $html->css('jquery-ui');

?>

когда я отправляю форму без значения для UserDetailAliasName, форма не отправляется, и сообщение об ошибке проверки отображается ( "это поле обязательно" ), но если я отправлю такое значение, как @, # и т.д., форма отправляет данные, iam, используя эту форму для поиска имени пользователя из db.

$(document).ready(function () {
    jQuery.validator.addMethod("alphaNumeric", function (value, element) {
        return this.optional(element) || /^[0-9a-zA-Z]+$/.test(value);
    }, "Username must contain only letters, numbers.");


    $('#UserDetailIndexForm').validate({
        rules: {
            UserDetailAliasName: {
                required: true,
                alphaNumeric: true
            }
        }
    });

});

Ответ 1

Включите также сообщение ниже правил:

    messages: {
    account:{
        required:"Porfavor ingresa tu ID de cuenta",
        minlength:"La cuenta debe tener al menos 6 caracteres",
        alphanumeric:"No se permite que ingreses caracteres invalidos"
    }

которые работают для меня (мой локальный язык испанский)

Ответ 2

проверено и что работает.. is required тоже не работает для вас?

демонстрация

Ответ 3

            if ($('#element').val() != "value") {
            var a = e.key;
            if (a.length == 1) return /[a-z]|[0-9]|&/i.test(a);
            return true;
        }