Как разрешить только строку в поле ввода текста - PullRequest
1 голос
/ 12 апреля 2019

Как разрешить только ввод строки в text_field, используя rails haml форму.

.field
  = f.label "agent_name"
  = f.text_field :agent_name, :required => true,:id=>"agent_name_validation"
  $("#agent_name_validation").keypress(function(event) {
    var string = /^[a-z]+$/i;
    if(event.which != string){
      return false;
    }
  });

Ответы [ 4 ]

0 голосов
/ 12 апреля 2019

Попытайтесь добавить гем проверки jQuery https://github.com/meowsus/jquery-validation-rails Слишком простой способ поставить множество проверок. Вся проверка уже готова к использованию, вам нужно просто использовать их готовые методы

myField: {lettersonly: true}

И это сделано .. Удачи ..

0 голосов
/ 12 апреля 2019

Используйте этот скрипт

$("#agent_name_validation").keypress(function(event){
   var inputValue = event.charCode;
   if(!(inputValue >= 65 && inputValue <= 120) && (inputValue != 32 && inputValue != 0)){
       event.preventDefault();
   }
});
0 голосов
/ 12 апреля 2019

Вы можете использовать RegExp.prototype .test () , чтобы удалить введенный символ, если он не является строкой между регулярным выражением [a-z]:

Обратите внимание, что при этом будут проверяться только строчные буквы:

$('#agent_name_validation').on('input', function () {
  if (!/[a-z]$/.test(this.value)) {
    this.value = this.value.slice(0, -1);
  }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input id="agent_name_validation" type="text">
0 голосов
/ 12 апреля 2019

используйте следующую функцию Jquery для удаления числа из текстового поля

$("#agent_name_validation").keyup(function(e) {
  // Our regex
  // a-z => allow all lowercase alphabets
  // A-Z => allow all uppercase alphabets
  var regex = /^[a-zA-Z]+$/;
  // This is will test the value against the regex
  // Will return True if regex satisfied
  if (regex.test(this.value) !== true)
  //alert if not true
  //alert("Invalid Input");

  // You can replace the invalid characters by:
    this.value = this.value.replace(/[^a-zA-Z]+/, '');
});
...