如何在文本框的keydown事件上获取文本框的id

How to get the id of the textbox on keydown event of that textbox

本文关键字:获取 取文本 id 事件 keydown 文本      更新时间:2023-09-26

我的页面中有一个文本框:

<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在我的文本框,它必须调用另一个javascript函数名为AddUsers(——输入参数——)..其中输入参数应为文本框

的id。

如何做到这一点…要么我需要文本框的id或至少DOM对象,以便我可以从DOM对象访问文本框的id ..

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

首先,您应该将函数重命名为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/

使用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);
    }
}

getjquery这里

然后取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>

可能有很多代码,但你可以确定它是跨浏览器的文档

您可以:

function AddUserKeyDown(evtobj) {
    evtobj = evtobj || window.event;
    var target = evtobj.target || evtobj.srcElement;
    if (evtobj.keyCode == 75 && evtobj.ctrlKey) {
       AddUsers(target.id);
    }
}

(你的函数名不匹配)