문제

버튼을 클릭하면 나이로 모달 창에 팝업되는 양식 (signup.php)이 있습니다.

<input value="Edit" class="nyroModal" type="button" href="signup.php">

양식을 제출하기 전에 어떤 형태의 Ajax 유효성 검사 (예를 들어 사용자 이름을 채취했는지 확인)를 사용하고 싶습니다.

사용자가 '제출'버튼을 클릭하면 다음을 염두에 두었습니다. JavaScript 기능을 사용합니다 onClick 필수 필드를 PHP 스크립트로 보냅니다. 필드가 유효한지 여부를 반환합니다. 그런 다음 필드가 유효하지 않으면 사용자에게 알리지 만 필드가 유효하면 다음과 같은 것을 통해 양식을 제출합니다. $('#formid').submit();. 이론적으로는 쉽습니다.

하지만

문제는 Nyromodel이 URL에서 새 형식을 가져오고 내용물로 DOM에서 DIV를 생성하면 Firefox는 완전히 무시합니다. <script> 태그. Firebug를 사용하면 실제로 <script> 응답이있는 태그이지만 Firefox는이를 무시합니다. 또한 문서가 만들어지면 양식이 아직 DOM에 존재하지 않기 때문에 모델이 호출되는 페이지에서 jQuery 함수를 만들 수 없습니다.

이것을 해결하는 방법이 있습니까?

도움이 되었습니까?

해결책

양식에 제출 처리기를 추가 해보십시오.

onClick='return frmSubmit()'

이 핸들러에서 먼저 양식의 데이터를 직렬화하고이를 유효성 검사 스크립트에 제출합니다. 확실히하십시오 return false 요청을 발행 한 후에는 비동기 적으로 수행됩니다. 응답 콜백에서 다음을 구현합니다. 응답이 입력이 유효하다는 것을 나타내는 경우, 프로그램 적으로 양식을 다음과 함께 제출합니다. .submit()-방법. 그러나 반응이 잘못되었음을 나타내는 경우 (JSON-Format에서 피드백을 제공해야 함), 사용자가 읽을 수 있도록 양식에 건설적인 피드백을 첨부하십시오.

Keypress 이벤트를 잡는 것을 잊지 말고 입력 기능을 우회 할 때 Enter가 눌렀을 때 양식이 제출되는 것을 방지하십시오.

그리고 음, 한 가지 제안 : 클라이언트 측에서 모든 검증을 시작하는 것이 더 나을 수 있습니다. 일반적으로 충분합니다. 클라이언트 측 유효성 검사가 우회 할 수 있다고 들었으므로 서버 측 점검이 여전히 필요합니다. 그러나 항상 사용자가 시스템을 심각하게 엉망으로 만들기로 결정하면 건설적인 피드백을 제공 할 필요가 없다고 생각합니다. 실패를 나타내는 간단한 메시지로 충분합니다. 따라서 먼저 일반 JavaScript로 입력을 확인하십시오. 무언가 잘못되면 피드백을 제공하십시오. 그러나 서버가 유효하지 않은 입력 (클라이언트 측 유효성 검사가 우회 된 것을 의미 함)을 받으면 사용자에게 실패했음을 알립니다.

다른 팁

다음과 같은 것을 사용할 수 있습니다.

onClick='javascript: return myValidationFuncion()

기능이 값이 유효한지 확인하는 경우, 즉 웹 서비스를 호출합니다. 값이 유효하지 않은 경우 실행을 중지하려면 값을 반환하십시오.

케이

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top