2017-05-23 8 views
1

やあみんなは、アレイ内のすべての不要な文字を.keepingし、一つ一つをチェックアレイ法を使用しようとしています。配列することにより、入力ボックス内の不要な文字を確認しますか?

私のコード: -

HTML: -

Username:<input type="text" class="my"> 
output: <span class="out">output</span> 

JS: -

$(".my").keydown(function(){ 
var Ii = $.trim($(this).val()); 
    if (Ii.indexOf('>') == -1 && Ii.indexOf('<') == -1 && Ii.indexOf('+') == -1 && Ii.indexOf('@') == -1 && Ii.indexOf('!') == -1) { 
     $('.out').text(Ii); 
    }else{ 
    $('.out').text('sorry you cannot input this'); 
    } 
    }); 

私はこれは完全に間違っている知っているので、あなたのロジックは、アレイを使用して与えてください。

答えて

1

あなたは、キープレスイベントとイベントのpreventDefaultを使用することができます。

$(".my").on('keypress', function(e) { 
 
    var c = String.fromCharCode(e.which); 
 
    if ('><[email protected]!'.indexOf(c) == -1) { 
 
     $('.out').empty(); 
 
    }else{ 
 
     $('.out').text('sorry you cannot input this: ' + c); 
 
     e.preventDefault(); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 

 
Username:<input type="text" class="my"> 
 
output: <span class="out">output</span>

0

配列に文字列を分割する.split("")を使用して、あなたのコードを動作させるために。

$(".my").keyup(function() { 
 
    var Ii = $.trim($(this).val()).split(""); 
 
    if (Ii.indexOf('>') == -1 && Ii.indexOf('<') == -1 && Ii.indexOf('+') == -1 && Ii.indexOf('@') == -1 && Ii.indexOf('!') == -1) { 
 
    $('.out').text($(this).val()); 
 
    } else { 
 
    $('.out').text('sorry you cannot input this: '+Ii[Ii.length - 1]); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
Username: 
 
<input type="text" class="my"> output: <span class="out">output</span>

0

あなたは $ .inArrayを使用することができます(your_input_text、[ ">"、 "<"、 "+"、 "@"]);

関連する問題