java脚本退格键和删除在IE中工作,而不是在FireFox中工作
java script backspace and delete working in IE,not in FireFox
我使用以下函数进行十进制验证,它在IE和Chrome中工作正常,而不是在FF中。退格键和删除键在IE和Chrome中工作,不在FireFox中
$('.decimalValidate').live('keypress', function (e) {
var decimalid = $(this).attr("id");
var decimalval = $('#' + decimalid).val();
var decimalvalidate = ApplyDecimalFilter(decimalval, e);
if (decimalvalidate == false) return false;
});
function ApplyDecimalFilter(id, event)
{
try {
return NewDecimalFilter(id, event);
} catch (e) {
alert(e.message);
}
}
function NewDecimalFilter(o, event) {
if (event.which > 47 && event.which < 58) {
return true;
}
if (event.which == 50 ||(event.which == 8 || event.which == 46) && o.indexOf('.') == -1) {
return true;
}
return false;
}
这个如果条件仅在 FireFox 中不起作用。这用于输入唯一的一个点符号
if (event.which == 50 ||(event.which == 8 || event.which == 46) && o.indexOf('.') == -1) {
return true;
}
通常,这种类型的验证需要小心完成,因为文本可以通过键盘以外的方式(例如粘贴、文本拖动和上下文菜单中的"删除"选项)更改为输入。在提交表单时,限制键盘输入仍需要伴随着适当的验证。
使用keyCode
来检测实际按下的键(通常以keydown
或keyup
而不是keypress
),which
检测键入的字符(仅在keypress
事件中)。一般来说,查看keypress
事件的keyCode
属性不是一个好主意,但对于删除和退格的情况,这很好:并非所有浏览器都会为这些键触发keypress
事件,但对于那些这样做的浏览器,keyCode
属性是一致的。
总结:将(event.which == 8 || event.which == 46)
更改为(event.keyCode == 8 || event.keyCode == 46)
,其余部分保持不变。
以下是我见过的 JavaScript 密钥事件的最佳参考: http://unixpapa.com/js/key.html
$('#Name_Var').keypress(function (event) {
event = event || window.event;
var charCode = event.which || event.keyCode;
var charStr = String.fromCharCode(charCode);
// FireFox key Del - Supr - Up - Down - Left - Right
if (event.key !== undefined && event.charCode === 0) {
return;
}
//Only Num
if (!/^([0-9])*$/.test(charStr)) {
event.preventDefault();
}
//Num and letters
if (!/^[a-zA-Z0-9]+$/.test(charStr)) {
event.preventDefault();
}
});
相关文章:
- 为什么这在IE中的工作方式与在Firefox中不同
- JS可以在Chrome中工作,但不能在Firefox中工作
- Facebook登录按钮没有'不能在Firefox上工作
- JS在firefox中无法正常工作
- firefox插件:退出不工作的应用程序观察器
- :focus:一起活跃,不在firefox上工作
- 加载Soundcloud嵌入式播放器OnClick在FireFox中不工作
- javascript()onclick隐藏元素-dos'我不在firefox工作
- 异步加载的SVG过滤器feColorMatrix在Chrome中工作,而不是在Safari或Firefox中
- Iframe加载调整大小在Chrome中工作,但不能在IE或Firefox中工作
- 按钮处于活动状态,焦点无法在Mac FireFox上工作
- HTML5 Canvas undo是'在IE或Firefox中无法正常工作
- javascript代码,用于删除firefox中的空白,但在IE和chrome中无法正常工作
- JavaScript 在 Chrome 中工作,而不是在 Firefox 中
- jQuery代码在Firefox中工作,但在IE中失败
- Javascript加载功能只能在一半的时间内工作(Firefox)
- jQuery点击不工作FireFox -可能是event.preventdefault
- JQUERY .load不能与窗口一起工作.firefox中的位置
- Javascript菜单不工作Firefox
- Jquery只在我重新加载页面时工作-Firefox