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 ...

如何实现这一点。我需要文本框的 id 或至少 DOM 对象,以便我可以从 DOM 对象访问文本框的 id。

请帮助我实现这两件事中的任何一件。

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

用于this获取 DOM 元素或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 回答
0

你可以:

function AddUserKeyDown(evtobj) {
    evtobj = evtobj || window.event;
    var target = evtobj.target || evtobj.srcElement;

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

(你的功能名称不匹配顺便说一句)

于 2013-04-25T13:05:20.163 回答