我写了一个只允许数字,逗号,点的java脚本。我将它应用于四个文本框。我的问题是我有10个文本框,它们采用不同类型的数据,其中四个我应用了java脚本。我可以在其他文本框上使用tab键,但我无法在java脚本应用文本框上使用移动courser。在我的剧本中我有什么变化......谢谢。
Java脚本: -
function isNumberCommaDot(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode(key);
if (key.length == 0) return;
var regex = /^[0-9,\9\b]*\.?[0-9]*$/;
if (!regex.test(key)) {
theEvent.returnValue = false;
if (theEvent.preventDefault) theEvent.preventDefault();
}
}
我在正则表达式中使用了\ 9,但仍然不接受Tab键。(9是ASCII字符,用于TAB键)
答案 0 :(得分:6)
您可以检查它是否是之前的标签按下,只是跳过处理
function isNumberCommaDot(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
if (key === 9 ) { //TAB was pressed
return;
}
key = String.fromCharCode(key);
if (key.length == 0) return;
var regex = /^[0-9,\9\b]*\.?[0-9]*$/;
if (!regex.test(key)) {
theEvent.returnValue = false;
if (theEvent.preventDefault) theEvent.preventDefault();
}
}
您可以找到更多信息here