Próbuję utworzyć pole tekstowe username, które blokuje dane wejściowe użytkownika, jeśli jest to którekolwiek z nich (!, @, #, $,%, ^, &, *, (,), +, =,;,:, `, ~, |, ',?, /,.,>, < ,,,,").Jak uniemożliwić określone znaki po wprowadzeniu w formularzu wejściowym w prostym JavaScript?
Nie chodzi o to, aby sprawdzić później, ale w momencie kliknięcia. . idee to robić zarówno kończąc zły pierwszy skrypt JS nie wydają się działać w ogóle, a drugi skrypt JS zawiesza całą kartę
Mój obecny HTML kod jest:.
<form name = "RegForm" class="login">
<input type="text" name="username" id="username" placeholder="Enter your username">
</form>
Mój pierwszy Skrypt JS to: https://jsfiddle.net/ck7f9t6x
userID_textfield.onkeydown = function(e) {
var prohibited = "[email protected]#$%^&*()+=;:`~\|'?/.><, \"";
var prohibitedchars = prohibited.split("");
var prohibitedcharcodes = new Array();
for (var i = 0; i < prohibitedchars.length + 1; i++) {
prohibitedcharcodes.push(prohibitedchars[i].charCodeAt(i));
for (var a = 0; a < prohibitedcharcodes.length + 1; a++) {
if (prohibitedcharcodes[a] === e.which) {
return false;
}
else {
return true;
}
}
}
}
Mój drugi skrypt JS jest: https://jsfiddle.net/2tsehcpm/
var username_textfield = document.forms.RegForm.username;
username_textfield.onkeydown = function(e) {
var prohibited = "[email protected]#$%^&*()+=;:`~\|'?/.><, \"";
var prohibitedchars = prohibited.split("");
var text = this.value.toString();
var chars = text.split("");
for (var i = 0; i < chars.length + 1; i++) {
for (var a = 0; a < prohibitedchars.length + 1; a++) {
if (chars[i] == prohibitedchars[a]) {
chars[i] = null;
}
}
}
this.value = chars.join();
}
Co jest nie tak z moim kodu i co mam robić zamiast tego?
Każda oświecająca odpowiedź byłaby bardzo ceniona!
Tak więc, kiedy nacisnąłem shift + dowolny klawisz, pokazywałem tylko kod zmiany shift. Bardzo przydatne informacje Matt; zwięźle i dokładnie punkt! –