1

我刚刚意识到这段代码在 Firefox 中运行良好,但在 IE 8 中运行良好。当用户在输入字段中输入至少 8 个字符时,我需要自动填充列表。

$('#inputField').keyup(function (event) { 
    var $inputField = $(this); 
        if ($inputField.val().length >= 8) { popularListBox(); } 
});

function populateListBox(){
    $.get("Default.aspx?name=test", function(data) {
        $('#listBox').children().remove();
        var options = data;
        $("#listBox").html(data);
    });
}
4

1 回答 1

5

您想检测输入字段的变化,然后执行一些操作,对吗?

我认为您可能会检测到更改,而不仅仅是键盘操作。例如,如果用户从剪贴板粘贴呢?

请尝试以下代码:

$('#inputField').bind('propertychange input paste', function() {
  // do poppularListBox()
});

它适用于大多数输入字段,包括 textarea。请查看 jQuery 站点以获取更多信息。

根据我的经验,.keyup() 和 .keypress() 经常在 IE 中出错。如果可能的话,我想使用 .keydown() (逐案)

于 2012-06-10T05:34:05.370 回答