Javascript 防止向html文本字段输入特殊字符
我有一个输入文本字段,需要限制输入的字符。作为一种针对错误输入的防御方式,我试图不让用户输入错误的内容。输入可以是[a-zA-Z-。uuz]个字符,并且限制为32个字符Javascript 防止向html文本字段输入特殊字符,javascript,html,validation,Javascript,Html,Validation,我有一个输入文本字段,需要限制输入的字符。作为一种针对错误输入的防御方式,我试图不让用户输入错误的内容。输入可以是[a-zA-Z-。uuz]个字符,并且限制为32个字符 <input id="aliasEntry" type="text" maxlength="32"> 如您所见,我已经计算出了32个字符的限制,在达到限制后,用户将无法再键入任何内容。但是我在防止输入错误字符方面遇到了问题 我已尝试使用jquery的.keypress()和.keydown()事件捕捉器执行类似
<input id="aliasEntry" type="text" maxlength="32">
如您所见,我已经计算出了32个字符的限制,在达到限制后,用户将无法再键入任何内容。但是我在防止输入错误字符方面遇到了问题
我已尝试使用jquery的.keypress()和.keydown()事件捕捉器执行类似于以下内容的操作:
$("#aliasEntry").keypress(function(e)
{
var code = e.which || e.keyCode;
// 65 - 90 for A-Z and 97 - 122 for a-z 95 for _ 45 for - 46 for .
if (!((code >= 65 && code <= 90) || (code >= 97 && code <= 122) || code == 95 || code == 46 || code == 45))
{
var text = $("#aliasEntry").val();
text = text.substring(0,text.length);
$("#aliasEntry").val(text);
}
});
$(“#别名条目”)。按键(功能(e)
{
var代码=e.which | | e.keyCode;
//A-Z为65-90,A-Z为97-122,A-Z为95,A-Z为45,A-Z为46。
如果(!((code>=65&&code=97&&code您正在使用jQuery,那么请参见以下内容:。
如果字符恰好无效,只需调用e.preventDefault()
,这将阻止默认浏览器操作的发生,在这种情况下,默认浏览器操作将是插入字符。像这样使用输入
<input maxlength="32" onKeyUp="chText()" onKeyDown="chText()" id="aliasEntry"/>
它不允许任何字符进入,除了a-z
和a-z
并在keypress
期间进行操作;在Opera中,您无法阻止keydown
期间的默认操作。是的,效果很好。我当时正朝那个方向看,想知道事件是否可以简单地停止,但我使用了错误的方法ods。谢谢!记住还要做服务器端验证。使用jQuery时,客户端验证很容易被愚弄(在本例中关闭浏览器上的JavaScript),您不必再次进行规范化。请记住,最好有一些UI解释用户键盘突然停止工作的原因。
function chText()
{
var str=document.getElementById("aliasEntry");
var regex=/[^a-z]/gi;
str.value=str.value.replace(regex ,"");
}