Санкционировать неудар в лунку с jQuery и регулярные выражения

Я работаю с ASP.NET MVC5, и пробую санкционировать неудар в лунку с jQuery и регулярные выражения. Что попытка состоит в том, чтобы в неударе в лунку они только ввели буквы в компьютер включая 'ñ' и члены собрания с решающим голосом с тильдой.

Код:

$('#RazonSocial').on('keypress', function (e) {
    if (!/^[a-zA-ZáéíóúüñÁÉÍÓÚÜÑ]*$/.test(e.target.value)) {
        e.preventDefault();
    }
});

Проблема этого кода состоит в том, что, когда я ввожу цифры в компьютер и нажимаю на место, уже он не позволяет ввести больше цифр в компьютер; и когда я нажимаю на число, мне показывает первое число, что digité.

2
задан 20.01.2017, 07:06
0 ответов

Попробовав санкционировать в событии keypress, он не санкционируется:

  • Когда прикрепляется текст

  • Во многих браузерах mobile

Даже, препятствовать вводу неких символов обычно было чем-то из прошлого. Теперь, обычно позволяют ввести любой характер в компьютер и санкционировать в событии blur, или в момент посылания формуляра.

Но продолжая твою идею, мы могли бы санкционировать в событии неудар в лунку. Этот код удаляет весь тот характер, который не был бы буквенно-цифровым или местом:

$('#RazonSocial').on('input', function (e) {
    if (!/^[ a-z0-9áéíóúüñ]*$/i.test(this.value)) {
        this.value = this.value.replace(/[^ a-z0-9áéíóúüñ]+/ig,"");
    }
});
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<!-- HTML -->
<input type="text" id="RazonSocial">


Альтернативно, мы могли бы использовать jQuery Валидатион Плухин.

$(function() {
  
    $.validator.addMethod("alfanumOespacio", function(value, element) {
        return /^[ a-z0-9áéíóúüñ]*$/i.test(value);
    }, "Ingrese sólo letras, números o espacios.");
    
    $('#formulario').validate({
        rules: {
            RazonSocial: {
                alfanumOespacio: true,
                required: true,
            }
        }
    });
  
  
    //Para probar qué haría en el envío del form
    $('#probar').on('click', function(){
        console.log('Válido:',$('#formulario').valid());
    });
  
    
});
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!-- jQuery Validation Plugin -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/jquery.validate.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.15.0/additional-methods.min.js"></script>

<!-- HTML -->
<form id="formulario">
    <div>
        <input type="text" name="RazonSocial">
    </div>
    <div>
        <input type="button" id="probar" value="Probar">
    </div>
</form>
2
ответ дан 03.12.2019, 17:36

Теги

Похожие вопросы