2013-09-04 2 views
0

У меня есть этот код, который позволяет всем символам в текстовом поле. Он позволяет использовать только алфавиты и цифры в качестве первого символа. Теперь, как мне разрешить только пробел и подчеркивание наряду с алфавитами и цифрами? Я хочу код только в jQuery. Я нашел аналогичное решение здесь, но он не содержит код jQuery. http://jsfiddle.net/fwcfq/39/Разрешить только пробел, подчеркивание, алфавиты и цифры в текстовом поле

$('#value').bind('keypress', function(e) { 
     if($('#value').val().length == 0){ 
      if (e.which == 32){//space bar 
       e.preventDefault(); 
      } 
      var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which  <= 90) || (e.which >= 97 && e.which <= 122); 
      if (!valid) { 
       e.preventDefault(); 
      } 
     } 
    }); 
+0

пространства и подчеркивает для первой буквы? или вы хотите, чтобы все буквы были цифрами/буквами или пробелами/символами подчеркивания. – DGS

+0

Первым символом должен быть алфавит или номер. Второй символ может быть алфавитом/числом/пробелом/подчеркиванием. –

+0

не должно быть var valid = 'expr && expr && expr'? – andrew

ответ

1

Этот код будет делать то, что вы хотите

$('#value').bind('keypress', function (e) { 
    if ($('#value').val().length == 0) { 
     if (e.which == 32) { //space bar 
      e.preventDefault(); 
     } 
     var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122); 
     if (!valid) { 
      e.preventDefault(); 
     } 
    } else { 
     var valid = (e.which >= 48 && e.which <= 57) || (e.which >= 65 && e.which <= 90) || (e.which >= 97 && e.which <= 122 || e.which == 32 || e.which == 95 || e.which == 8); 
     if (!valid) { 
      e.preventDefault(); 
     } 
    } 
}); 

Fiddle

Этот подход предполагает, что вы знаете, все ключи, которые вы хотите принять, однако. Например, ключ Enter будет отклонен, если вы явно не разрешите его.

Смежные вопросы