我的页面中有一个文本框:
<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的javascript函数( - 输入参数 - )..其中输入参数应该是文本框的id ..
如何实现这一点..要么我需要文本框的id或至少DOM对象,以便我可以从DOM对象访问文本框的id ..
请帮助我实现这两件事中的任何一件......
答案 0 :(得分: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/
答案 1 :(得分: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);
}
}
答案 2 :(得分:0)
你可以:
function AddUserKeyDown(evtobj) {
evtobj = evtobj || window.event;
var target = evtobj.target || evtobj.srcElement;
if (evtobj.keyCode == 75 && evtobj.ctrlKey) {
AddUsers(target.id);
}
}
(您的func名称与btw不匹配)
答案 3 :(得分:0)
获取 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>
可能代码很多,但您可以确定它是跨浏览器 documentation