Jquery 在初始验证失败后,如何防止每次击键时激活验证方法?
我有一个带有“name”输入字段的表单,它对于整个应用程序来说应该是唯一的。当用户试图保存表单时,检查通过Ajax调用进行。如果用户将“名称”留空,然后保存表单,则随后将出现验证错误。在这一点之后,“name”字段的每一次击键都将导致Ajax调用。如何预防 HTML:Jquery 在初始验证失败后,如何防止每次击键时激活验证方法?,jquery,jquery-validate,Jquery,Jquery Validate,我有一个带有“name”输入字段的表单,它对于整个应用程序来说应该是唯一的。当用户试图保存表单时,检查通过Ajax调用进行。如果用户将“名称”留空,然后保存表单,则随后将出现验证错误。在这一点之后,“name”字段的每一次击键都将导致Ajax调用。如何预防 HTML: <input type="text" name="name" value="${Name}" /> var validationParams = { rules: { name: { requ
<input type="text" name="name" value="${Name}" />
var validationParams = {
rules: {
name: {
required: true,
uniqueName: true
}
}
};
...
$.validator.addMethod("uniqueName", uniqueNameFn, 'error msg');
...
saveBtn.on('click', save);
...
function save() {
templateRegion.find(form).validate(validationParams);
if (!templateRegion.find(form).valid()) return;
$.ajax({ ... });
}
// FIRES ON EVERY KEYSTROKE IF 'required' VALIDATION INITIALLY FAILS
function uniqueNameFn(value, elemChanged) {
$.ajax({ ... });
}
在validationParams对象中将onkeyup设置为false
var validationParams = {
onkeyup:false,
rules: {
name: {
required: true,
uniqueName: true
}
}
};
在validationParams对象中将onkeyup设置为false
var validationParams = {
onkeyup:false,
rules: {
name: {
required: true,
uniqueName: true
}
}
};
归根结底,这不是jQuery或JavaScript的问题。这是一个嵌套表单的情况。说到底,这不是jQuery或JavaScript的问题。这是一个嵌套表单的情况。您可以启动一个
setTimeout
函数,检查用户在开始键入时经过一定时间后是否停止键入,然后可以进行检查。您可以将一些值设置为“isValid”为false,并在以下情况下启动下一次!ISU可以使用event.preventDefault()或只返回提示。。。我会将.validate()
行移到保存
函数之外.validate()
用于初始化表单
,这只需要在DOM就绪时发生一次。您可以启动一个setTimeout
函数,检查用户从最初开始键入时起经过一定时间后是否停止键入,然后可以进行检查。您可以将一些值设置为“isValid”为false,并在以下情况下启动下一次!ISU可以使用event.preventDefault()或只返回提示。。。我会将.validate()
行移到保存
函数之外.validate()
用于初始化表单
,只需在DOM就绪时执行一次。