我需要阻止文本框输入字母和除点字符以外的任何其他特殊字符。这是我的功能:
function key_block(current_element,event){
var str = current_element.val();
//alertify.log(str);
var regex = new RegExp("^[0-9.]+$");
var key = String.fromCharCode(event.charCode ? event.which : event.charCode);
if (regex.test(str)) {
//event.preventDefault();
return true;
} else {
current_element.val('');
return false;
}
}
if(key_block($(this),e)){
//allow typing
}
该代码在Chrome浏览器中正常运行。但在Firefox中,这种方法并不正常。我在firefox中为regex.test(str)获得值“true”。但我不知道为什么这不允许我输入代码。谁能在这里找到真正的问题?
答案 0 :(得分:1)
如果我正确理解您的问题,您可以过滤传入的事件charCode
以阻止不需要的字符。如果是这种情况,我认为您需要测试key
而不是str
:
if (regex.test(key)) {