<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, '' ) );
});
我想在文本的任何地方编辑我的文字,所以我想要箭头键( left , right , up , down )加上 crtl 键,用 ctrl + A 选择所有文本。
答案 0 :(得分:2)
您需要将\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"/>
答案 1 :(得分:2)
只需在代码中添加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链接
答案 2 :(得分:1)
最简单的方法是限制哪些键将调用函数
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" />
答案 3 :(得分:0)
对于 ctrl + a ,请尝试以下操作:
$(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
答案 4 :(得分:0)
对于ctrl + a我建议你使用这样的机制: https://github.com/adrianmalik/jquery-hotkeys 然后你可以在例子中做到:
$('input').hotkey('ctrl+a', function() { /* Here you can do what you want */ });