我有一个自动填充文本框,无法触发按键事件。
以下是自动完成框的代码
<script type="text/javascript">
$(document).ready(function () {
$("#TransFinishedPartNumber").autocomplete({
source: function (request, response) {
// define a function to call your Action
$.ajax({
url: '@Url.Action("partLookUp", "Transaction")',
// term will be the param used by your action method
data: { term: request.term },
success: function (data) {
response($.map(data, function (item) {
return { label: item.pt_part + " " + item.pt_desc1, value: item.pt_part };
}))
$("#TransFinishedPartNumber").removeClass('acLoading');
},
error: function () {
$("#TransFinishedPartNumber").removeClass('acLoading');
}
})
},
minLength: 1, // require at least one character from the user
search: function () { $(this).addClass('acLoading'); },
});
});
现在这里是事件javascript它永远不会触发......不能生存或绑定或任何事情......但疯狂的事情是自动完成框工作...
<script type="text/javascript">
//Transaction Event handlers and ajax calls
$(document).ready(function () {
$("#TransFinishedPartNumber").bind("keydown",function (e) {
$("#TransFinishedPartNumber").addClass("ui-state-default");
});
$("#TransFinishedPartNumber").bind("keydown",function (e) {
$("#TransFinishedPartNumber").removeClass("ui-state-default");
});
});
我也试过这种方式
<script type="text/javascript">
//Transaction Event handlers and ajax calls
$(document).ready(function () {
$("#TransFinishedPartNumber").keydown(function (e) {
$("#TransFinishedPartNumber").addClass("ui-state-default");
});
$("#TransFinishedPartNumber").keydown(function (e) {
$("#TransFinishedPartNumber").removeClass("ui-state-default");
});
});
我改为这个脚本是绝对肯定的
<script type="text/javascript">
//Transaction Event handlers and ajax calls
$(document).ready(function () {
$("#TransFinishedPartNumber").keydown(function (e) {
alert(e.which);
});
});
答案 0 :(得分:0)
按住键时会持续触发Keydown事件。您可能想尝试使用密钥。
例如,如果您执行了以下操作并保留了某些内容,则会不断进行。实际上每秒很多次:
$("body").bind("keydown",function(){
$("body").append("pizza<br>");
});
但是密钥只发生一次!
$("body").bind("keyup",function(){
$("body").append("pizza<br>");
});
因此,因为您的代码有两次keydown事件。它每秒多次添加和删除类。