jquery输入选择历史(简单)

时间:2012-10-23 07:03:57

标签: javascript jquery

我有一个名为email class keyup-an的输入字段。我用它来验证它很容易,但它可以工作或当个人手动输入字段时。如何使其也用于选择历史数据。当你点击电子邮件,昨天你把test @ test.com,历史列表下降,你可以选择它,但它不是一个密钥。

我在使用.change或.click之后尝试了相同的功能,但它没有用。你们可以建议吗?有效吗

$('.keyup-an').keyup(function() {
    $('span.error-keyup-1').hide();
    var inputVal = $(this).val();
    var numericReg = /^[a-zA-Z0-9_ ]{2,30}$/;
    if(!numericReg.test(inputVal)) {
        $(this).css('background', '#FAC3C3');
        $(this).after('<span class="error error-keyup-1">Validationfail</span>');
    } 
    else {
        $(this).css('background', 'lightgreen');
    }
});

jquery history

3 个答案:

答案 0 :(得分:1)

你可以通过

来做到这一点
autocomplete='off'

例如

<form name="form1" id="form1" method="post" autocomplete="off">

或尝试类似

的内容
$(input).autocomplete().keyup(function(event) {
  event.stopPropagation();
}).keydown(function() {
$(this).autocomplete('search', $(input).val());   
});

好读

How to Turn Off Form Autocompletion

答案 1 :(得分:1)

如果我理解正确,您希望在单击自动完成项目时触发事件。

这是一个已知的bug,查看这篇关于jquery插件的文章,我认为这正是你所需要的:

http://furrybrains.com/2009/01/02/capturing-autofill-as-a-change-event/

答案 2 :(得分:0)

而不是将您的函数绑定到keyup事件..可能将它绑定到更改事件? 好吧..这似乎不适用于某些浏览器..您可以参考前面的答案并使用解决方案,它基本上创建一个计时器来检查间隔中的值以检测更改。如果您希望验证发生得非常快,则强制浏览器执行大量工作。或者您可以启用自动完成功能并强制用户手动输入值,如同建议的第一个答案。