通过处理程序函数(addEventListener函数)取消键按下的事件

问题描述 投票:3回答:2

我想创建一个测试函数来更改'。'将字符转换为文本框中的“,”字符。我无法更改服务器端,因为它是google doc。 '56 .3'被认为是数字,但'56,3'是(!)。

假设我使用了以下代码:

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);

然后问题是','和'。被添加到该字段。如何取消“。”按下事件?如何替换“。”按事件,按','按事件?

我已经搜索了Internet,但没有使用'addEventListener'函数找到解决方案。

javascript dom
2个回答
3
投票

使用e.preventDefault()应该这样做。

我有一个jsFiddle演示放在一起:http://jsfiddle.net/yrYH4/


0
投票

可能是因为您要从事件处理程序返回true。

您可以使用event.preventDefaultreturn false防止采取默认操作-您从处理程序的内部if语句返回false,然后从主函数返回true。

© www.soinside.com 2019 - 2024. All rights reserved.