1

ページにテキスト ボックスがあります。

<td>
<input type="text" id="Approvers1" size="11" onkeydown="AddUsersKeyDown(event)" style="width: 470px;" />
</td>

これは私のjs関数です:

function AddUsersKeyDown(evtobj) {

    if (evtobj.keyCode == 75 && evtobj.ctrlKey) {

        AddUsers(--input parameter--);
    }
}

ここで、テキストボックスで ctrl k を押すと、AddUsers(--input parameter--).. という名前の別の JavaScript 関数を呼び出す必要があります。ここで、入力パラメーターはテキストボックスの ID にする必要があります...

これを達成する方法..DOMオブジェクトからテキストボックスのIDにアクセスできるように、テキストボックスのIDまたは少なくともDOMオブジェクトが必要です..

2つのことのいずれかを達成するのを手伝ってください..

4

4 に答える 4

4

最初に、関数の名前を に変更しAddUsersKeyDownて、keydown イベントがトリガーされるようにする必要があります。イベント オブジェクトにはtarget、トリガーとなる DOM 要素を持つプロパティがあります。その情報を使用して ID を取得できます。

 <input type="text" id="Approvers1" size="11" onkeydown="AddUsersKeyDown(event)" style="width: 470px;" />

そしてJavascript:

function AddUsersKeyDown(evtobj) {

    var target = evtobj.target || evtobj.srcElement;

    if (evtobj.keyCode == 75 && evtobj.ctrlKey) {
        AddUsers(target.id);

        return false;
    }
}

ここに jsfiddle があります: http://jsfiddle.net/q26Nv/3/

于 2013-04-25T13:03:29.500 に答える
2

ここでjqueryを取得 します

そしてonkeydownを取る

<input type="text" id="Approvers1" class="keydown" size="11" style="width: 470px;" />

スクリプトを追加

<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
$(function() {
    $('.keydown').keydown(function() {
       console.log( $(this).attr('id') );
    });
});
<script>

おそらく多くのコードですが、クロスブラウザのドキュメントであることは間違いありません

于 2013-04-25T13:09:57.600 に答える
2

thisDOM 要素this.idを取得するか、要素の ID を取得するために使用します

<td>
<input type="text" id="Approvers1" size="11" onkeydown="AddUsersKeyDown(event,this.id)" style="width: 470px;" />
</td>

function AddUsersKeyDown(evtobj,id) {

    if (evtobj.keyCode == 75 && evtobj.ctrlKey) {

        AddUsers(id);
    }
}
于 2013-04-25T13:01:27.433 に答える