如何阻止用户使用JS在文本框中键入内容?

时间:2015-05-16 15:35:42

标签: javascript

您好我正在练习JS,我有一个来自javascript的问题。

我要让用户只输入字母,如果用户也决定输入数字,程序会阻止他/她。请不要jQuery答案因为我对此一无所知。

这是我的代码......



<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script type="text/javascript">
function vent (t)
{
	var m=/^[a-zA-Z]+$/
	 t=document.getElementById("txt");
	if(t.value.match(m))
	{
		alert("Co");
		return true;
	}
	    
	else
	{
		// I want to write my preventing code here.......
	}
}
</script>
</head>
&#13;
<body>
<input type="text" id="txt" onBlur="vent (this)"/><br/>
<input type="text"/>
</body>
</html>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

将用户输入限制为键值的子集时,通常会使用onkeydown事件而不是模糊。这样,您可以防止将用户的击键添加到输入值,而不是在事后将其删除。您需要做的就是使用preventDefault()取消事件或从keydown处理程序返回false。请注意,对于较旧的浏览器,除了keyCode之外,您可能需要检查which,例如var c = e.which || e.keyCode;,然后检查c的值是否超出允许的范围。

&#13;
&#13;
function allowOnlyCharacters(e)
{
    return e.which == 16 || (e.which >= 65 && e.which <= 90);
}

var element = document.getElementById('txt');
element.onkeydown = allowOnlyCharacters;
&#13;
<input type="text" id="txt"/><br/>
<input type="text"/>
&#13;
&#13;
&#13;