Javascript 通过处理程序函数(addEventListener函数)取消按键事件
我想创建一个测试函数,将文本框中的“.”字符改为“.”字符。我无法更改服务器端,因为它是谷歌文档“56.3”被认为是一个数字,但“56,3”是(!) 假设我使用了以下代码:Javascript 通过处理程序函数(addEventListener函数)取消按键事件,javascript,dom,Javascript,Dom,我想创建一个测试函数,将文本框中的“.”字符改为“.”字符。我无法更改服务器端,因为它是谷歌文档“56.3”被认为是一个数字,但“56,3”是(!) 假设我使用了以下代码: function changeValue(e) { e = window.event || e; var keyCode = e.charCode || e.keyCode; if (String.fromCharCode(keyCode)==='.') { event.targe
function changeValue(e) {
e = window.event || e;
var keyCode = e.charCode || e.keyCode;
if (String.fromCharCode(keyCode)==='.') {
event.target.value+=",";
return false;
}
return true;
}
function start_up () {
console.log('Start');
var tmp = document.getElementById('ss-form');
tmp = tmp.getElementsByTagName('input');
console.log(tmp);
for(var i=0; i<tmp.length; i++) {
tmp[i].addEventListener('keypress',changeValue, false);
console.log(i, tmp[i]);
}
};
window.addEventListener("load",start_up, false);
函数更改值(e){
e=window.event | | e;
var-keyCode=e.charCode | | e.keyCode;
if(String.fromCharCode(keyCode)=='。){
event.target.value+=“,”;
返回false;
}
返回true;
}
功能启动(){
console.log('Start');
var tmp=document.getElementById('ss-form');
tmp=tmp.getElementsByTagName('input');
控制台日志(tmp);
对于(var i=0;i使用e.preventDefault()
应该这样做
我得到了一个JSFIDLE演示:这可能是因为您正在从事件处理程序返回true
您可以使用event.preventDefault
或return false
来防止执行默认操作-您从处理程序的内部if语句返回false,然后从主函数返回true。在if语句内部调用return
会使您脱离函数,而不仅仅是脱离if语句泰门特。