我正在尝试使用带有 Sijax 的 JQuery Validation 插件检查用户名是否有效。这意味着我使用 Sijax(Ajax,Python)在服务器上验证用户是否已经存在。我将此方法添加到验证插件中:
$.validator.addMethod("availableName", function(value, element) {
var check = true;
var username = $("#username").val();
Sijax.request('checkuser', [username]);
if (usercheck) {
check = false;
usercheck = false;
}
return check },
"That username is no longer available");
服务器上的 checkuser 方法检查用户名的可用性并更改 usercheck 变量的值。我检查了萤火虫和方法usercheck(它调用另一个javascript方法来更改usercheck)确实发送了正确的响应,但它可能会跳过其他行?
我现在遇到的问题是用户名字段的验证仅在我聚焦并模糊它两次时发生。其他所有领域都工作得很好。这意味着例如,如果用户名“Jon”已经存在,就会发生这种情况:
- 我进入 Jon 并模糊了场地 -> 没有任何反应
- 重新聚焦并模糊该字段->“此用户名已存在”
即使我在重新聚焦后更改了不存在的用户名(例如更改为 Jon1234),它仍然显示“此用户名已经存在”。所以我认为这意味着该领域落后了一步,但我不知道为什么。
提前致谢!