嘿伙计们正在尝试使用数组方法。保留数组中所有不需要的字符并逐个检查。
我的代码: -
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');
}
});
我知道这是完全错误的,所以请使用数组给出你的逻辑。
答案 0 :(得分:1)
您可以使用按键事件和事件preventDefault。
$(".my").on('keypress', function(e) {
var c = String.fromCharCode(e.which);
if ('><+@!'.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>
答案 1 :(得分: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>
答案 2 :(得分:0)
你可以使用 $ .inArray(your_input_text,[&#34;&gt;&#34;,&#34;&lt;&#34;,&#34; +&#34;,&#34; @&#34;]) ;