如何防止用户使用Javascript输入特定密钥
我有一个文本字段,只允许使用字母。所以我编写了下面的Javascript方法来防止其他键。不幸的是,我的文本字段允许向上箭头(^)。 谁能告诉我如何限制向上箭头(^) html代码如何防止用户使用Javascript输入特定密钥,javascript,html,user-interface,Javascript,Html,User Interface,我有一个文本字段,只允许使用字母。所以我编写了下面的Javascript方法来防止其他键。不幸的是,我的文本字段允许向上箭头(^)。 谁能告诉我如何限制向上箭头(^) html代码 <div class="form-group"> <label class="form-text">Travels Name</label> <h:inputText value="#{bean.travelName}" maxlength="50" onkeyp
<div class="form-group">
<label class="form-text">Travels Name</label>
<h:inputText value="#{bean.travelName}" maxlength="50" onkeypress="return onlyAlphabet(event)" />
</div>
游记名称
仅限功能参数(evt){
var theEvent=evt | | window.event;
var key=theEvent.keyCode | | theEvent.which;
var keychar=String.fromCharCode(key);
var-keycheck=/[a-zA-z\s]/;
如果(!(键==8 | |键==27 | |键==46 | |键==9 | |键==39 | |键==94))//退格删除转义箭头
{
如果(!keycheck.test(keychar)){
theEvent.returnValue=false;//对于IE
if(theEvent.preventDefault)
theEvent.preventDefault();//Firefox
}
}
否则如果(键==94)
theEvent.preventDefault();
}
仅限功能参数(evt){
var theEvent=evt | | window.event;
var key=theEvent.keyCode | | theEvent.which;
var keychar=String.fromCharCode(key);
var-keycheck=/[a-zA-z\s]/;
如果(!(键==8 | |键==27 | |键==46 | |键==9 | |键==39 | |键==94))//退格删除转义箭头
{
如果(!keycheck.test(keychar)){
theEvent.returnValue=false;//对于IE
if(theEvent.preventDefault)
theEvent.preventDefault();//Firefox
}
}
否则如果(键==94)
theEvent.preventDefault();
}
最优雅的方式(Safari不支持)是使用输入元素的模式
属性
<input pattern="[A-Za-z\s\^]+" type="text" />
最优雅的方式(Safari不支持)是使用input
元素的pattern
属性
<input pattern="[A-Za-z\s\^]+" type="text" />
使用jQuery,简单而优雅:
jQuery('#id').on('keypress', limitChars);
function limitChars(e){
return event.charCode >= 97 && event.charCode <= 122;
}
jQuery('#id')。on('keypress',limitChars);
函数限制字符(e){
使用jQuery返回event.charCode>=97&&event.charCode,简单而优雅:
jQuery('#id').on('keypress', limitChars);
function limitChars(e){
return event.charCode >= 97 && event.charCode <= 122;
}
jQuery('#id')。on('keypress',limitChars);
函数限制字符(e){
return event.charCode>=97&&event.charCode您可以通过以下更简单的方式实现这一点:
函数onlyAlphabet(inputVal){
变量patt=/^[a-zA-Z]+$/;
if(部分测试(输入值)){
document.getElementById('txtTravel')。value=inputVal;
}
否则{
var txt=inputVal.slice(0,-1);
document.getElementById('txtTravel')。value=txt;
}
}
游记名称
您可以通过以下更简单的方式实现:
函数onlyAlphabet(inputVal){
变量patt=/^[a-zA-Z]+$/;
if(部分测试(输入值)){
document.getElementById('txtTravel')。value=inputVal;
}
否则{
var txt=inputVal.slice(0,-1);
document.getElementById('txtTravel')。value=txt;
}
}
游记名称
您应该尝试只阻止您不想要的特定键。因此,keypress事件在输入此字符之前获取按下的键。您还可以使用event.preventDefault()阻止您不想要的特定键
我将向您展示一个很好的示例,说明如何使用jQuery实现这一点
$("input[name='yourinput']").keypress(function(event) {
if ( event.keyCode == 94 ) {
event.preventDefault();
}
});
您应该尝试只阻止不需要的特定键。因此,keypressevent在输入此字符之前获取按下的键。您还可以使用event.preventDefault()阻止不需要的特定键
我将向您展示一个很好的示例,说明如何使用jQuery实现这一点
$("input[name='yourinput']").keypress(function(event) {
if ( event.keyCode == 94 ) {
event.preventDefault();
}
});
这同样有效
游记名称
这同样有效
游记名称
为什么不使用正则表达式?Hi-Mihir,你检查我的答案了吗?为什么不使用正则表达式了吗?Hi-Mihir,你检查了我的答案了吗?请提供一个解释。不鼓励只使用代码的答案。请提供一个解释。不鼓励只使用代码的答案。