【发布时间】:2012-11-16 04:10:18
【问题描述】:
我已经编写了一个同时处理鼠标和键盘事件的代码。但是onkeypress 事件在Firefox、IE 等中没有触发。我也尝试过keydown 事件,但这不起作用。 li 元素的 HTML 代码是:
print "<li class=\"ui-menu-item \" id=\"toli$i\" value=\"'$name','$email'\" role=\"menuitem\"><a class=\"ui-corner-all\" href=\"#\" onkeypress=\"keyhandle('$name','$email');\" onclick=\"fillto('toli$i','$name','$email');\">$ename $ediv $email></a></li>";
}
elsif($field eq "cc"){
print "<li class=\"ui-menu-item \" id=\"toli\" role=\"menuitem\"><a class=\"ui-corner-all\" href=\"#\" onkeypress=\"keyhandle('$name','$email');\" onclick=\"fillcc('$name','$email');\">$ename $ediv $email></a></li>";
}
elsif($field eq "bcc"){
print "<li class=\"ui-menu-item \" id=\"toli\" role=\"menuitem\"><a class=\"ui-corner-all\" href=\"#\" onkeypress=\"keyhandle('$name','$email');\" onclick=\"fillbcc('$name','$email');\">$ename $ediv $email></a></li>";
}
}
print "</ul>";
javascript函数是
<script language="javascript">
function keyhandle(id,name,email){
alert (id);
}
</script>
onclick 事件正在触发,但 onkeypress 没有触发。谁能建议这是为什么?
提供给浏览器的代码是
<div id="displayto" class="display ui-widget"><ul class="ui-autocomplete ui-menu ui-widget-content ui-corner-all " style="width: 550px; max-height: 200px;" aria-activedescendant="ui-active-menuitem" role="listbox"><li class="ui-menu-item " id="toli1" value="'AMAL SMITHA S','amal_smitha@vssc.gov.in'" role="menuitem"><a class="ui-corner-all" href="#" onkeypress="keyhandle('AMAL SMITHA S','amal_smitha@vssc.gov.in');" onclick="fillto('toli1','AMAL SMITHA S','amal_smitha@vssc.gov.in');">"AMAL SMITHA S" (COM) < amal_smitha@vssc.gov.in></a></li></ul></div>
我已经尝试过代码
$(document).ready(){
$("#displayto").keypress(function(){
alert('a');
});
}
但它也不起作用。我给每个
【问题讨论】:
-
我认为
onkeypress仅适用于文本类型的输入,例如type="text"或<textarea> -
@bdares — 不是。 onkeypress 事件在元素上按下和释放键时发生。该属性可用于大多数元素。 — w3.org/TR/html4/interact/scripts.html#h-18.2.3
-
@Smitha Abhilash — 您正在从 Perl 生成 HTML 和 JavaScript,而 HTML/JavaScript 不起作用。请向我们展示浏览器获取的代码,而不是生成它的代码片段。
-
当您向我们展示的代码中没有使用该库时,为什么将其标记为
jQuery? -
您使用什么程序来测试您的代码?你如何聚焦锚点? (你还记得这样做吗?)