Показать сообщение отдельно
  #1 (permalink)  
Старый 17.04.2015, 00:11
Аспирант
Отправить личное сообщение для Moloch Посмотреть профиль Найти все сообщения от Moloch
 
Регистрация: 29.10.2013
Сообщений: 94

Обработка полей формы
Здравствуйте подскажите пожалуйста как реализовать след. задачу . есть форма следующего вида
<form id="form" onsubmit="return false">
			Имя:<br />
			<input type="text" class="req_field" name="username" /><br/>
			Комментарий:<br/>
			<textarea rows="5" cols="30" name="comment" class="req_field"></textarea><br />
			<!--<input  type = "button" value="Отправить">-->
      <button type="submit">Отправить</button>
		</form>

необходимо Разрешить ввод только символов [8, 9, 13, 16, 17, 32, 37, 39, 46, 65-122, 189]
При вводе недопустимого символа вывести alert('Недопустимый символ') и удалить этот символ

я сделал это так

$(function(){
 var mas = [0,8, 9, 13, 16, 17, 32, 37, 39, 46,56, 189];
  var chrcd=0;
  var str = '';
 $('#form .req_field').on('keyup',function(e){


      if (!mas.find_in_array(chrcd)) {
        alert('введен недопустимый символ! :' +chrcd);
        str = $(this).val();
       $(this).val(str.slice(0, -1));
      }
      

    });

  
  $('#form .req_field').on('keypress',function(e){
    chrcd=e.charCode;
    console.log(e.charCode);
     

    });

Array.prototype.find_in_array = function(needle) {

   for(var i = 0, l = this.length; i < l; i++)  {

      if(this[i] == needle) {

         return true;

      }

   }

   return false;

}

});


Проблема в том, что если я ввел последовательность из разрешенных символов а потом ввожу неразрешенный, скрипт его удаляет. Но если я потом хочу стереть клавишей backspace (ее нажатие разрешено) оставшиеся символы, скрипт каждый раз выводит алерт с чаркодом этого самого неразрешенного символа. Как исправить эту проблему?
Ответить с цитированием