【发布时间】:2010-06-17 07:08:24
【问题描述】:
我们如何限制一个字符在文本框中输入。
【问题讨论】:
-
你能不能说的更清楚一点。您的意思是要限制用户在文本框中输入某些特定字符是吗?
标签: html
我们如何限制一个字符在文本框中输入。
【问题讨论】:
标签: html
您可以通过 javascript 执行此操作(因此如果 javascript 关闭,您将无法对其进行限制)
<input type="text" onkeyup="this.value = this.value.replace(/[^a-z]/, '')" />
这会将其限制为仅 a-z 字符。结帐regular expressions 看看你能做什么
【讨论】:
如果你有文本框,那么你必须处理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;
}
【讨论】:
尽管仍有可能,但对于 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)。
【讨论】:
Ben Rowe 的答案确实是接近它的方法。但是,该字符将在被删除之前出现在文本框中。您可以使用oninput 而不是onkeyup 来防止这种情况发生:
<input type="text" oninput="this.value = this.value.replace(/[^a-z]/, '')" />
【讨论】:
function isNumberKey1(evt)
{
var charCode = (evt.which) ? evt.which : event.keyCode;
if ( char!=8(charCode < 65 || charCode > 106))
return false;
return true;
}
【讨论】: