我正在使用jquery键盘匹配正则表达式,如果输入匹配我想要的内容,则再次将用户输入到validate。
$("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的任何处理程序中使用随机键的键盘代码,则可能必须向事件中添加它们。请参见trigger documentation。
关于javascript - 如果浏览器自动填写字段,则触发jquery表单验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26116112/