CTRL 键和箭头键允许输入
CTRL key and arrow keys allow in input
<input type="text" id="s" />
jQuery('#s').bind('keyup blur',function()
{
var selectedInput = jQuery(this);
selectedInput.val( selectedInput.val().replace( /[^a-zA-Z0-9,]/g, '' ) );
});
我想从文本中的任何位置编辑我的文本,所以我希望箭头键(左,右,上,下)和crtl键使用ctrl + A选择所有文本。
您需要
将's
添加到正则表达式中以允许空格。不执行左键和右键。
我删除了keyup
事件以避免烦人的行为
工作代码片段:
var allowedKeyCodes = [17, 37, 39];
jQuery('#s').bind('blur',function(event){
if($.inArray(event.keyCode, allowedKeyCodes))
return false;
var selectedInput = jQuery(this);
selectedInput.val( selectedInput.val().replace( /[^a-zA-Z0-9,'s]/g, '' ) );
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="s" value="Hello World"/>
只需在代码中添加if条件即可,以下是工作代码。让我知道任何进一步的帮助。
jQuery('#s').bind('keyup blur',function()
{
var selectedInput = jQuery(this);
if (selectedInput.val().match(/[^a-zA-Z0-9,]/g)) {
selectedInput.val( selectedInput.val().replace( /[^a-zA-Z0-9,]/g, '' ) );
}
});
在这里,是你的答案的jsfiddle链接 http://jsfiddle.net/ug1srcm6/
最简单的方法是限制哪些键将调用函数
jQuery('#s').bind('keyup blur',function(e)
{
var keys=[37, 38, 39, 40];
// for any special keys you want to ignore
// add their keycodes to this array
// left arrow: 37
// up arrow: 38
// right arrow: 39
// down arrow: 40
// then, only call your function if the key press is not one of these keys
if($.inArray(e.keyCode, keys ) == -1 ){
var selectedInput = jQuery(this);
selectedInput.val( selectedInput.val().replace( /[^a-zA-Z0-9,]/g, '' ) );
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" id="s" />
对于 ctrl + 尝试以下操作:
$(document).ready(function()
{
var ctrlDown = false;
var ctrlKey = 17, aKey = 86
$(document).keydown(function(e)
{
if (e.keyCode == ctrlKey)
ctrlDown = true;
}).keyup(function(e)
{
if (e.keyCode == ctrlKey)
ctrlDown = false;
});
$(".select-all").keydown(function(e)
{
if (ctrlDown && (e.keyCode == aKey))
return false;
});
});
对于箭头键,请使用以下键代码:
left arrow: 37
up arrow: 38
right arrow: 39
down arrow: 40
对于ctrl + a,我建议您使用这样的机制:https://github.com/adrianmalik/jquery-hotkeys然后,您将能够在示例中执行以下操作:
$('input').hotkey('ctrl+a', function() { /* Here you can do what you want */ });
相关文章:
- 为什么不't Javascript对我的输入值进行了一些重新检查
- 可以't让我的if语句处理js中的html表单输入
- 名称输入的索引
- 如何编写HTML输入的JS内联
- 要求输入在数据列表中
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 如何将输入(type=text)从html表单传递到javascript函数
- 根据某些条件验证用户输入,而不是将输入输入到数组中,需要最基本的解决方案
- 输入输入前浏览器崩溃
- JavaScript 在不输入输入字段/表单的情况下传递输入
- 为什么我的 javascript 函数只有在我手动输入输入时才有效
- 通过条形码阅读器等外部设备输入输入后选择并突出显示输入
- 如何使用AJAX将输入输入到javascript变量,并在特定的时间间隔内更新javascript中的函数
- 在鼠标上输入输入字段Expand
- 当我们为其他子搜索输入输入AngularJS输入任何值时,避免[object object]出现在主搜索输入中
- 多重选择下拉菜单,自定义输入输入我们的值
- 如何转换时间戳并输入<输入类型="日期">
- 验证所有输入输入的总数等于100
- 当用户输入输入值时,如何使用jquery或javascript将int转换为double