9

問題があります。テキストボックス内で関数を呼び出したいのですが、Enterキーを押すと、これが私のコードです。

<input  type="text" value="DIGITE O LOCAL" onclick="this.select()" size="20" id="endereco">

のようなものを置きたいonenterpress="doSomething()"

これどうやってするの ?

4

3 に答える 3

25

控えめなJavascriptを使用する場合:

<input type="text" value="DIGITE O LOCAL" onclick="this.select()" 
onKeyDown="if(event.keyCode==13) alert(5);" size="20" id="endereco">

これを目立たないように処理します。

document.getElementById('endereco').onkeydown = function(event) {
    if (event.keyCode == 13) {
        alert('5');
    }
}

後者のアプローチを使用するのが最善の選択です。長期的には保守性に役立ちます。

参照: http: //en.wikipedia.org/wiki/Unobtrusive_JavaScript

于 2012-09-28T15:06:09.840 に答える
4

Daniel Liの答えは最も巧妙な解決策ですが、これまでのように、IEとevent.keyCodeが未定義を返すという問題が発生する可能性があります。このwindow.eventのチェックを回避するには

document.getElementById('endereco').onkeydown = function(event){
    var e = event || window.event;
    if(e.keyCode == 13){
        alert('5');
    }
}​
于 2012-10-01T18:53:18.360 に答える
4

HTML

<input  type="text" value="DIGITE O LOCAL" onkeypress="doSomething(this, event)" onclick="this.select()" size="20" id="endereco">

JS

function doSomething(element, e) {
    var charCode;

    if(e && e.which){
        charCode = e.which;
    }else if(window.event){
        e = window.event;
        charCode = e.keyCode;
    }

    if(charCode == 13) {
        // Do your thing here with element
    }
}
于 2012-09-28T15:07:56.417 に答える