사용자가 등록할 때 일부 내용을 입력하고 각 양식에 플래그 값을 지정해야 합니다
포커스가 사라지면 양식의 플래그 값이 감지됩니다.
최종 제출이 이루어지면 이 플래그 값이 올바르게 제출할 수 있지만 문제는 다음과 같습니다.
이제 사용자의 초점이 인증 코드 입력 상자에 있고 사용자가 인증 코드를 입력한 후 등록하기 위해 제출 버튼을 클릭하면, 문제는 없습니다
사용자가 인증코드 입력창에서 마우스를 이동했기 때문에 제출 버튼으로 이동하면 인증코드 인증 작업이 완료되고 해당 플래그 값이 true였습니다
그러나 사용자가 사용하는 경우 Enter 키를 제출하고 포커스가 여전히 인증 코드 입력 상자에 있습니다. 이를 위해서는 수동 코드 focusout()이 필요합니다
<code>$("input:focus").focusout(); for(var i=0;i<$("input").length;i++){ if($("input").eq(i).attr('flag')==0){ return false; } }</code>인증 코드가 세션에 배치됩니다. 이때, 탐지가 완료되기 전에 해당 양식의 플래그 값이 여전히 false인지 확인해야 합니다. 다음 코드가 실행되어 false를 반환하여 양식을 제출할 수 없습니다
사용자가 제출할 때 확인해야 할 모든 항목을 확인할 수 있도록 for 루프에 지연을 주는 것도 생각해 보았습니다.
하지만 이 경우에는 아무것도 입력하지 않고 사용자가 직접 제출할 수 있습니다. 프런트 데스크의 모든 확인은 유효하지 않습니다.
제가 명확하게 설명하지 않은 내용이 있는지 모르겠습니다. 메시지를 남겨주셔도 됩니다. 모두 감사합니다
포커스가 사라지면 양식의 플래그 값이 감지됩니다.
최종 제출이 이루어지면 이 플래그 값이 올바르게 제출할 수 있지만 문제는 다음과 같습니다.
이제 사용자의 초점이 인증 코드 입력 상자에 있고 사용자가 인증 코드를 입력한 후 등록하기 위해 제출 버튼을 클릭하면, 문제는 없습니다
사용자가 인증코드 입력창에서 마우스를 이동했기 때문에 제출 버튼으로 이동하면 인증코드 인증 작업이 완료되고 해당 플래그 값이 true였습니다
그러나 사용자가 사용하는 경우 Enter 키를 제출하고 포커스가 여전히 인증 코드 입력 상자에 있습니다. 이를 위해서는 수동 코드 focusout()이 필요합니다
<code>$("input:focus").focusout(); for(var i=0;i<$("input").length;i++){ if($("input").eq(i).attr('flag')==0){ return false; } }</code>사용자가 제출할 때 확인해야 할 모든 항목을 확인할 수 있도록 for 루프에 지연을 주는 것도 생각해 보았습니다.
하지만 이 경우에는 아무것도 입력하지 않고 사용자가 직접 제출할 수 있습니다. 프런트 데스크의 모든 확인은 유효하지 않습니다.
제가 명확하게 설명하지 않은 내용이 있는지 모르겠습니다. 메시지를 남겨주셔도 됩니다. 모두 감사합니다
인증코드 입력값을 직접 제출하고 백그라운드 세션과 비교할 수 있습니다. 왜 프론트엔드 인증마크를 제출해야 하나요? 프런트 엔드에 제출된 모든 내용은 위조될 수 있습니다.
제출하기 전에 ajax 이벤트를 추가하세요. 즉, 인증코드가 맞는지 확인한 후, 맞다면 팝업창이 뜨고 제출이 되지 않습니다.
위의 상황을 방지할 수 있습니다.