Только разрешить ввод определенных символов в html textinput
Мне просто нужно разрешить пользователю вводить следующие символы в textinput:
A-Za-Z0-9 @# $% ^ * _ |!
<form action="http://www.cknuckles.com/cgi/echo.cgi" method="get" name="logOn">
User Name:<br />
<input type="text" name="userName" size="25" /><br />
Password:<br />
<input type="password" name="pw" size="25" /><br />
<input type="submit" value="Log In" onClick="validate()"/>
</form>
Выше мой HTML, и ниже мой JavaScript, который я пытался использовать для его проверки, но он не работает - никаких подсказок.
<script language="javascript">
document.logOn.onsubmit=validate;
function validate(){
var name=document.logOn.pw.value;
if(!name = "[[email protected]#$%^*_|]"){
alert("Your Password Cant Have any thing other than [email protected]#$%^*_| - Play It Straight!");
return false;
}
return true;
}
</script>
Но это не работает. Я все еще могу помещать символы как " > " и "<" и "{" и т.д.
Любые мысли?
Ответы
Ответ 1
Вы можете попробовать ввести текст ввода, как показано ниже:
<input type="text" pattern="[[email protected]#$%^*_|]{6,25}" />
Итак, изменения кода выглядят следующим образом:
<form action="#" method="get">
User Name:<br />
<input type="text" pattern="[[email protected]#$%^*_|]{6,25}" /><br />
Password:<br />
<input type="password" /><br />
<input type="submit" value="Log In" />
</form>
это сделает это без использования JavaScript. pattern
можно использовать вместо этого.
Он довольно эффективен, чем JavaScript для проверки формы.
Ответ 2
используйте этот
<script language="javascript">
document.logOn.onsubmit=validate;
function validate(){
var name=document.logOn.pw.value;
var reg=/[^a-zA-Z0-9\!\@\#\$\%\^\*\_\|]+/;
if(reg.test(name)){
alert("Your Password Cant Have any thing other than [email protected]#$%^*_| - Play It Straight!");
return false;
}
return true;
}
</script>
Ответ 3
Это должно сделать
<input type="text" name="something" pattern="[[email protected]#$%^*_|]{0,100}">
Ответ 4
Попробуйте это и верните меня обратно, если это сработает для вас
function validate(){
var name=document.logOn.pw.value;
var test = new RegExp("[[email protected]#$%^*_|]");
if(!name.match(test)){
alert("Your Password Cant Have any thing other than [email protected]#$%^*_| - Play It Straight!");
return false;
}
return true;
}
http://jsfiddle.net/KJEcG/
Ответ 5
Попробуйте это...
if(!/[[email protected]#$%^*_|]./.test(name)){