2017-06-29 17 views
-1

(!、@、&)のような特殊文字を入力しないようにしようとしていますフォームのテキストフィールドに特殊文字を入力しないようにするにはどうすればよいですか?

以下のコードでは、最初の文字である場合にのみ上の文字を入力するように制限しています。たとえば&ため

は入力できませんが、&は条件場合は、追加した

$('input#first_name-required').bind('keypress', function(e) { 
    console.log(e.which); 
    if($('input#first_name-required').val().length == 0){ 
     var k = e.which; 
     var ok = k >= 65 && k <= 90 || // A-Z 
      k >= 97 && k <= 122 || // a-z 
      k >= 48 && k <= 57 //0-9 ; 

     if (!ok){ 
      e.preventDefault(); 
     } 
    } 
}); 
+0

あなたはこれをチェックアウトすることができます:https://stackoverflow.com/questions/4444477/how-to-tell-if-a-string-contains-a-certain-character-in-javascript – gavsta707

+0

最初の文字だけではなく、すべての文字のために働きます。なぜこの条件がありますか? '($( 'input#first_name-required')。最初の文字だけをチェックするように言っているようです。 – Santi

+1

これはセキュリティに頼るべきではないことを覚えておいてください。すべてのチェックはサーバー側で行う必要があります。 – NieDzejkob

答えて

1

を入力することができます。私はあなたがちょうどこの条件を削除0

$('input#first_name-required').bind('keypress', function(e) { 
 
    
 
    
 
     var k = e.which; 
 
     var ok = k >= 65 && k <= 90 || // A-Z 
 
      k >= 97 && k <= 122 || // a-z 
 
      k >= 48 && k <= 57 //0-9 ; 
 

 
     if (!ok){ 
 
      e.preventDefault(); 
 
     } 
 
    
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input id="first_name-required">

+0

あなたのソリューションは動作します! –

+0

解決策として役立つ場合は、 – Omi

+0

その方法を記入してください。 –

2
if($('input#first_name-required').val().length == 0) 

よりも長おろし金をチェックしたいかもしれないと思うとそれが正常に動作する必要があります。

.val()は、入力内の文字列を返します。 .length == 0は実際には "文字列が0文字の場合"を意味します。検証は、入力が空の場合にのみ実行されます。つまり、最初の文字を入力した場合のみです。

+0

あなたはそれが正しいです! –

関連する問題