起初我有这个并且它工作得很完美但即使出现错误也会提交:
$(document).ready(function(){
$('input[name=subdomain]').keyup(subdomain_check);
$('input[name=password]').keyup(password_strenght);
$('input[name=c_password]').keyup(password_check);
$('input[name=email]').keyup(email_check);
});
所以我把它改成了这个,现在它不会调用里面的函数!
$(document).submit(function(e){
$('input[name=subdomain]').keyup(subdomain_check);
$('input[name=password]').keyup(password_strenght);
$('input[name=c_password]').keyup(password_check);
$('input[name=email]').keyup(email_check);
return false;
});
这里有什么问题?
这是整个代码:http://pastie.org/8812743
答案 0 :(得分:1)
在发生提交事件之前,您没有附加keyup事件处理程序。此时用户已完成所有字段的输入。
将呼叫转移到$(...).keyup(...)
回到dom ready事件。您实际上需要一个附加事件处理程序来检查用户输入:
$(document)
.ready(function(){
$('input[name=subdomain]').keyup(subdomain_check);
$('input[name=password]').keyup(password_strenght);
$('input[name=c_password]').keyup(password_check);
$('input[name=email]').keyup(email_check);
})
.submit(function(e) {
// validate input
// if invalid, show error message and call e.preventDefault();
});
一般用户工作流程为:
domready
事件,附加keyup事件处理程序答案 1 :(得分:0)
不知道你的验证函数究竟返回了什么,但是,如果它是一个布尔值你可能只是做这样的事情:
$("#formId").submit(function(e){
if(!subdomain_check() || !password_strenght() || !password_check() || !email_check()) {
e.preventDefault();
}
});
答案 2 :(得分:0)
$(document).ready(function(){
$('input[name=subdomain]').keyup(subdomain_check);
$('input[name=password]').keyup(password_strenght);
$('input[name=c_password]').keyup(password_check);
$('input[name=email]').keyup(email_check);
function subdomain_check (e) {
// these functions should set a global variable to false if validation fails
}
function password_strenght (e) {
// these functions should set a global variable to false if validation fails
}
function password_check (e) {
// these functions should set a global variable to false if validation fails
}
function email_check (e) {
// these functions should set a global variable to false if validation fails
}
$(document).submit(function(e){
return global_var; // where global_var is the variable set by the validating functions
}
});