3

我有一个名为 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历史

4

3 回答 3

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());   
});

好读

如何关闭表单自动完成

于 2012-10-23T07:06:54.823 回答
1

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

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

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

于 2012-10-23T07:11:10.253 回答
0

而不是将您的函数绑定到keyup事件..也许将它绑定到更改事件?好的..这似乎不适用于某些浏览器..您可以参考上一个答案并使用该解决方案,该解决方案基本上创建了一个计时器来检查间隔中的值以检测更改。如果您希望 imo 快速进行验证,则强制浏览器做很多工作。或者您可以关闭自动完成功能并强制用户手动输入值,就像第一个答案建议的那样。

于 2012-10-23T07:11:14.663 回答