2013-08-02 2 views
1

ajax를 통해 클라이언트 측 js 유효성 검사를 수행하는 양식이 있습니다. 3 개의 필드, 이름, 전자 메일 및 메시지가있는 간단한 전자 메일 (연락처) 양식입니다. 적절한 유효성 검사없이 제출을 클릭하면 오류 msg div가 표시됩니다. 이 3 개의 입력은 각각 onblur를 통해 js 함수를 호출합니다. 적절한 입력을 입력 한 다음 제출을 클릭하면 작동하지 않습니다. 두 번 클릭하면 작동합니다.OnBlur는 제출 단추를 두 번 클릭하게합니다.

이유는 이유가에 onblur 확인 기능 프로세스가 그 때 제출하도록 해당 필드에서 없앱 할 필요가있다. 이것은 공통적 인 문제인 것처럼 보입니다. 제출은 3 필드를 확인하기 위해 ajax 호출을하는 php 스크립트를 호출하고, 올바르다면 "success"msg를 표시하면서 이메일을 전송합니다.

아무리 생각해도이 두 번 클릭 버튼을 중단해야하는 이유는 무엇입니까 ??

나는이 코드가 너무 오래 걸릴 것이라고 추측했기 때문에 코드를 제공하지 않았다. 그러나 도움이된다. 3 개의 필드는 좋지 않다면 false를 반환하고, 좋으면 true를 반환하고, PHP 스크립트는 필드가 비어 있으면 2 개의 필드를 확인한다. 전자 메일 필드가 regex를 통해 올바르게 형식화되어있는 경우. 그렇다면 메일 기능을 사용하고 div에 "success"를 출력합니다.

+0

는 왜 사용자가 활기찬 방식으로 입력을 입력하는 동안 (클라이언트 측 유효성 검사에서) 오류 MSG를 보여주고 싶은 경우'더 잘'에서'onchange' 오히려보다, 자신을 submit'에 클라이언트 측 유효성 검사를 수행하지 onblur' – rps

+1

코드가 없기 때문에 나는 잘 모른다. 그건 그렇고 ** ** SO **에 오신 것을 환영합니다. 여기서 수십만 가지의 질문이있는 가운데 대부분이 코드를 게시한다는 것을 알 수 있습니다. 그것과 소금의 돌진없이, 우리는 우리의 생명을 구할 가치가있는 빵 한 덩어리를 요리 할 수 ​​없다. 아, 그리고 [** 처음 읽으십시오 **] (http://stackoverflow.com/help) 아직 읽지 않았다면, 좋은 읽을 거리입니다! –

+0

답변 및 자료를 읽어 주셔서 감사합니다. 일반적으로 나는 코드를 게시 하겠지만 입력 태그가 매우 간단한 형식으로 함수를 호출하는 것을 보여주기에는 너무 기본적이고, 부울을 반환하는 onblur를 사용한다고 가정했습니다. 나는 지금 막 나가고있는 두 가지 아이디어를 시도 할 것입니다 ... –

답변

0

방금 ​​문제를 해결했습니다. Onblur가 확실히 문제였습니다. onkeyup을 onkeyup으로 바꿨습니다. 각 키를 누른 후에 모든 키가 다시 유효성을 검사 했으므로 "제출"을 클릭하면 이미 입력 클라이언트 측의 유효성이 검사되고 즉시 서버 측 스크립트가 실행됩니다.
모든 사람 모두에게 감사드립니다.

+0

네트워크 연결이 너무 느리면 어떻게해야합니까? 나는 당신의 솔루션이 내만큼 신뢰할 수 있다고 생각하지 않습니다. –

0

나는 (제출을 클릭했을 때) 대안이 없다고 생각하고, 제출을 클릭 한 다음 유효성 검사기 콜백에서 모든 것이 유효하면 플래그가 설정되어 있는지 확인한 다음 양식을 제출하십시오 .

document.formname.submit(); 
0

당신은 어떤 Ajax 요청이 완료 될 때까지

$(document).ajaxComplete(function(){ 
       form.submit();  
       }); 

가 어떤 대기 사용할 수 있습니다.

관련 문제