我们如何限制字符在文本框中键入。
答案 0 :(得分:17)
你可以通过javascript(所以如果javascript关闭,你将无法限制它)
<input type="text" onkeyup="this.value = this.value.replace(/[^a-z]/, '')" />
这会将其限制为仅限a-z字符。结帐regular expressions以查看您可以执行的操作
答案 1 :(得分:7)
如果您有文本框,则必须处理onkeypress
事件
<input type='text' onkeypress='keypresshandler(event)' />
您可以使用以下功能限制用户
function keypresshandler(event)
{
var charCode = event.keyCode;
//Non-numeric character range
if (charCode > 31 && (charCode < 48 || charCode > 57))
return false;
}
答案 2 :(得分:4)
尽管仍然可以,但HTML5并不需要为此要求使用基于JavaScript的解决方案。
<input type="text" name="text" pattern="[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,3}$">
将根据RegExp模式限制允许的字符(在这种情况下:有效的电子邮件地址)。
当用户尝试提交与要求不匹配的数据时,title
属性将用作警告/通知。
<form action="/add_country.php">
Country code: <input type="text" name="country_code" pattern="[A-Za-z]{3}" title="Three letter country code">
<input type="submit">
</form>
有关详细信息,请参阅documentation on HTML input element。并非所有浏览器都支持它(例如Safari)。
答案 3 :(得分:1)
Ben Rowe的答案确实是接近它的方法。但是,该字符将在删除之前显示在文本框中。您可以使用oninput
代替onkeyup
来阻止这种情况:
<input type="text" oninput="this.value = this.value.replace(/[^a-z]/, '')" />
答案 4 :(得分:0)
function isNumberKey1(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode;
if ( char!=8(charCode < 65 || charCode > 106))
return false;
return true;
}