3

我目前有一个事件监听器来监听用户何时在 html 网站的文本框中输入电子邮件地址。然后,它会在检测到正在输入电子邮件地址时显示警报。目前我已经设置它检测事件模糊然后检查它是否符合正则表达式然后将显示警报。这会产生许多警报,并且不像警报那样非常准确

我需要事件监听器来监听 Tab 键何时被按下。我知道我需要使用 KeyCodes 但以前没有使用过它们。此事件侦听器当前正在动态工作,因为它是扫描网页的 Firefox 插件,因此事件侦听器不会专门附加到特定的输入框。

代码:

vrs_getWin.document.getElementsByTagName("body")[0].innerHTML = bodyContents;
    var inputFields = vrs_getWin.document.getElementsByTagName("input");
    for(inputC=0; inputC < inputFields.length; inputC++)   {
        var elementT = inputFields[inputC].getAttribute("id");
        inputFields[inputC].addEventListener("blur", function(){
            var emailPattern = /(\w[-._\w]*\w@\w[-._\w]*\w\.\w{2,3})/g;
            var resultEmail = emailPattern.test(vrs_getWin.document.getElementById(elementT).value);
            if(result)  {
               prompts.alert(null, "Test", vrs_getWin.document.getElementById(elementT).value);         
            }
        }, false);
    }

对此的任何帮助将不胜感激。

4

1 回答 1

3

我认为从用户体验的角度来看,我不建议使用 javascript 警报来通知用户问题,特别是如果您希望在他们完成单个表单输入时发生通知。模糊事件将是我的建议,并使用其他一些视觉提示来通知用户。

但是,如果您想使用 tab 键,您要查找的事件是“keydown”或“keyup”。要使用它,您需要监听 keydown 事件,然后检查 event.keyCode == '9'。(制表键)

document.addEventListener('keydown', function(e){
                if( e.keyCode == '9' ){
                    alert('You pressed the tab key.');
                }
            }, false);

要获取键的键码,我喜欢打开控制台并输入:

document.addEventListener('keydown', function(e){
                console.log( e.keyCode );
            }, false);

然后,当您按下一个键时,它将输出该键的键码。

于 2013-02-28T20:45:08.130 回答