jQuery keyup () недопустимые символы - PullRequest
1 голос
/ 19 мая 2010

У меня есть поле, и я хочу, чтобы некоторые недопустимые символы отображались при вводе пользователем. Как я могу сделать это в следующем примере?

  $('input').bind("change keyup", function() {
   var val = $(this).attr("value");
   /*
   if (val --contains-- '"') {
    $(this).css("background", "red");
           val = val.replace('"', "");
              $(this).attr("value", val)
   }
   */
   $("p").html(val);
  });

РЕДАКТИРОВАТЬ: я должен положить недопустимые символы в массиве

var vowels = new Array('"', "<", ">", "&");

Ответы [ 3 ]

5 голосов
/ 19 мая 2010

Попробуйте использовать регулярное выражение.

$('input').bind("change keyup", function() {
 var val = $(this).val();
 var regex = /["<>&]/g;
 if (val.match(regex)) {
   $(this).css("background", "red");
   val = val.replace(regex, "");
   $(this).val(val);
 }
 $("p").html(val);
});

И к вашему сведению: вы можете заменить .attr("value",val) на .val(val) и .attr("value") на .val()

UPDATE:

Если вы хотите исключить больше символов, вы можете просто поместить их в регулярное выражение. Если вы хотите исключить символ, который используется для управления регулярным выражением, вам нужно экранировать его с помощью \ символов для управления регулярным выражением: []()/\+{}?*+.^$

1 голос
/ 19 мая 2010

Дайте это попробовать. Хотя нет массива.

    $('input').bind("change keyup", function() {
        var $th = $(this);
        $th.val( $th.val().replace(/["<>&]/g, function(str) {  return ''; } ) );
    }); 
0 голосов
/ 19 мая 2010

Вы можете использовать indexOf, чтобы определить, содержит ли строка определенный символ ...

vowels = array ('"'," <","> "," & ");

$('input').bind("change keyup", function()
{
   var val = $(this).attr("value");
   var illegal = '';       
   $(vowels).each(function()
   {
      if(val.indexOf(this)!=-1)
      {
          illegal= this;
          break;
      }
   });
   if(illegal != '') 
   {
       $(this).css("background", "red");
       val = val.replace(illegal, "");
       $(this).attr("value", val)
   }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...