簡體   English   中英

如果瀏覽器自動填寫了字段,則觸發jquery表單驗證

[英]Trigger jquery form validation if field is autofilled by browser

我正在使用 keyup來匹配正則表達式,又是用戶輸入,以輸入是否與我想要的匹配。

$("input[name=vat]").keyup(function(){
    var vatVal = $(this).val();
    var vatReg = /^[0-9-]{6,}$/;
    if (!vatReg.test(vatVal)) {
        $(this).removeClass("success");
        $(this).addClass("error");
    } else {
        $(this).removeClass("error");
        $(this).addClass("success");
        if (!$("span[name=vaterror]").hasClass("hide")) {
            $("span[name=vaterror]").addClass("hide");
        }
    }
});

但是某些瀏覽器預填寫表單字段時出現問題。 如果用戶已設置瀏覽器設置,例如Chrome,Chrome可以為您預填充某些輸入字段。

發生這種情況時如何觸發驗證?

我認為這是重復項很不好,我將其解釋為選擇瀏覽器建議的選項,而不是頁面加載時實際的初始預填充。

我很確定在觸發document.ready()之前,仍然沒有辦法捕獲瀏覽器的預填充。 但是您可以利用它來發揮自己的優勢。

對於所有不具有默認值的輸入字段,只需觸發您在document.ready事件中捕獲的事件:

$(document).ready(function(){
  $('input[value!=""]').trigger('keyup');
});

此代碼未經測試,如果您在偵聽keyup的任何處理程序中使用隨機鍵的鍵盤代碼,則可能必須將其添加到事件中。 請參閱觸發器文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM