当用户在表单字段中输入详细信息时,我编写了一小部分jquery来检查数组。
我已经设置了数组中的值以及用户类型都被检查为小写,这样工作正常。
我现在添加了一行,允许我阻止用户输入无效字符。
这再次起作用,但有一个小问题,因为它停止使用左和右;右箭头在输入字段中的字符之间来回移动。
我不知道为什么!!
$(function(){
$("input[name='name[]']").bind("change keyup", function() {
var val = $(this).val().toLowerCase();
$(this).val($(this).val().replace(/[$@#!£]/, ''));
var names = ['rod','jane','freddy'];
var names = $.map(names, function(n,i){return n.toLowerCase();});
var results = ($.inArray(val, names) != -1) ? "GREY" : "WHITE";
$(this).css("background-color", results);
});
});
我创建了一个 FIDDLE 来说明会发生什么。
如果删除以下行,则可以使用,但允许使用无效字符。
$(this).val($(this).val().replace(/[$@#!£]/, ''));
如何让它工作但允许箭头键工作?
由于
答案 0 :(得分:3)
检查用户按下了哪个键,并在按下时停止该功能:
$("input[name='name[]']").bind("change keyup", function(e) { //Add the event as argument
var keyAllowed = [37, 39]; //37 = left key code, 39 = right
if($.inArray(e.which, keyAllowed) > -1) return; //Stop the function
//Your code
})