이름, 성, 사용자 이름, 암호 및 전자 메일 주소를 묻는 가입 양식이 있습니다. 두 개의 별도 $ .get() 메서드를 사용하여 사용자 이름과 전자 메일 주소가 없는지 확인합니다. 다른 필드가 비어있는 사용자 이름 및/또는 이메일 주소가 존재하는 경우, 양식
function validateSignUp() {
var firstName = $("#first-name").val();
var lastName = $("#last-name").val();
var username = $("#username").val();
var password = $("#pass").val();
var email = $("#email").val();
var passwordVerifier = $("#retype-pass").val();
var emailVerifier = $("#retype-email").val();
errorMessage = "";
var isUsernameValid = validateUsername(username);
var isError = false;
// validate first name field
if (firstName == "" || lastName == "") {
isError = true;
$("#error-message").html("All fields are required");
}
// validate password
if (validatePassword(password) == false) {
isError = true;
$("#check-password").html("Password is invalid");
}
else {
$("#check-password").html("");
}
// validate password verifier
if (passwordVerifier == password) {
if (validatePassword(passwordVerifier) == false) {
isError = true;
$("#recheck-password").html("Minimum of 6 characters and maximum of 30 characters");
}
else {
if (password != passwordVerifier) {
isError = true;
$("#recheck-password").html("Minimum of 6 characters and maximum of 30 characters ");
}
else {
$("#recheck-password").html("");
}
}
}
else {
isError = true;
$("#recheck-password").html("Passwords didn't match");
}
// validate username field
if (isUsernameValid == false) {
isError = true;
$("#check-username").html("Alphanumeric characters only");
} // if
else if (isUsernameValid == true) {
$.get("/account/checkavailabilitybyusername", { username: username },
function(data) {
if (data == "Not Existing") {
$("#check-username").html("");
}
else if (data == username) {
isError = true;
$("#check-username").html("Sorry, this username is already registered");
}
}
);
} // else
// validate e-mail address field
if (validateEmail(email) == false) {
isError = true;
$("#check-email").html("Sorry, the e-mail you typed is invalid");
} // if
else if (validateEmail(email) == true) {
$.get("/account/checkavailabilitybyemail", { email: email },
function(data) {
if (data == "Not Existing") {
$("#check-email").html("");
}
else if (data == email) {
isError = true;
$("#check-email").html("Sorry, this e-mail is already registered");
}
});
}
if (isError == true) {
return false;
}
return true;
}
제출되지 않습니다
이 제 기능입니다. get 메소드의 콜백 함수도 호출됩니다. 그러나 빈 필드가없는 양식을 제출할 때 $ .get()에 의해 사용자 이름 및/또는 전자 메일을 확인하지 않고 자동으로 제출됩니다. 내 기능에 문제가 있거나 아직 어떤 것을 발견하지 못했습니다. 감사.
그리고 확인하는 동안 전체 사용자 인터페이스가 멈 춥니 다. 고맙습니다. * 동시 통화는 절대하지 마십시오. * 이것이 내 모토이며, 분명히 그 의견에 홀로있는 것은 아닙니다. – Boldewyn
@ 볼드윈, 천만에요. 0.5 초도 안되는 _page_ (브라우저가 아님)를 고정시키는 것은 나에게 문제가되지 않는 것처럼 보입니다.이 요청은 그 이상 소요되지 않습니다. –
적어도 FF <3.0 이상에서는 UI를 고정합니다. 그리고 예기치 않은 상황에서 DNS hickups와 같은 요청이 오래 걸릴 수도 있습니다. 현재 탭만 차단하는 경우 : 요청이 고정되면 사용자가 페이지에서 아무 것도 할 수 없습니다. 어떤 클릭에도 반응하지 않으며 look'n 느낌은 사용자에게 페이지 *의 오류 *처럼 보입니다. 그리고 *이 멋진 사이트 * 등록 페이지에? 나는 생각하지 않는다. 그것은 좋은 생각이다. – Boldewyn