내가 자바 스크립트를 사용하여 유효성을 검사 할 수있는 방법을 알고 싶습니다. 계정을 만들 때 사용자 이름을 입력하면 이미 데이터베이스에 있으며 사용자에게 다른 사용자 이름을 입력하도록 요청할 수 있습니까?Javascript를 사용하여 사용자 이름을 확인하는 방법은 무엇입니까?
답변
- 이벤트의 수신 수신기를
<input />
요소에 연결합니다. AJAX는 아이디를 부여할지 여부를 서버 측 수표에 - (매개 변수 필드 값) 서버에 요청을 전송하여
- 서버의 응답 표시 (여부)에 기초
- 가 이 이름은 이미 사용 아닌지 이미 사용 메시지
jQuery를 (I 순수한 JS 너무 게으른) + PHP 샘플 코드 :
<form ...>
...
<input type="text" name="username" id="input-username" />
<p class="error"></p>
...
$("#input-username").blur(function() {
$.post("/check-username.php", { username: $(this).val() }, function(data) {
if ("0" == data) { /* username in use */
$(this).next("p").text("This username is already in use.</p>");
} else { /* username is fine */
$(this).next("p").empty();
}
});
});
<?php
$username = $_POST['username'];
// check whether given username exists in database
$usernameExists = ...;
echo $usernameExists ? '0' : '1'; // 0 if exists, 1 if not.
대답은 AJAX입니다. 데이터베이스에 대해 유효성을 검사해야하는 경우 서버를 호출해야합니다. 페이지를 다시로드하지 않고 (EDIT : 제대로) 수행 할 수있는 유일한 방법은 AJAX입니다. 구현 방법은 사용하고있는 자바 스크립트 라이브러리와 사용중인 서버가 무엇인지에 따라 다릅니다. 나는 당신이 그것을 조금 검색하고 읽을 것을 제안한다 - 이것은 꽤 일반적인 사용 사례이다.
* 페이지를 다시로드하지 않고도 페이지를 다시로드 할 수있는 유일한 방법은 AJAX입니다. * 기술적으로 AJAX는 기술적으로 유일한 솔루션은 아니지만 고려해야 할 가치가 있습니다. – Crozin
@ 크로 신 : 사실입니다. 페이지 또는 무언가가 AJAX-esque 인 모든 사용자 이름을 무의미한 iframe처럼로드하는 것과 같은 작업을 수행 할 수 있습니다. 무한한 방법으로 잘못 할 수 있습니다. –
아약스하지 않을 수도 있습니다 사용자 이름은 일반적으로 공개되므로 유일한 해결책입니다. 간단한 방법은 단지 새로운 사용자가 추가 될 때마다 업데이트되는 RDF/XML 문서를 사이트에있는 모든 사용자의 목록이있는 Javascript DOM으로 쉽게 탐색하여 해당 사용자가 이미 사용 중입니다. 당신은 또한 그들이 당신이 얼마나 유리한가 또는 불리한 점인지에 따라 당신이 아닌 계산 능력을 지불하게합니다.
가능하지만이 솔루션은 상당히 나쁩니다. 검색 비용은 O (n), 대역폭 비용은 엄청나고, 비용이 많이 드는 문서 업데이트 (리소스 경합) 등이 있습니다. 대조적으로 최상의 솔루션은 대역폭을 훨씬 적게 사용하며 모든 곳에서 더 빠르고 효율적입니다. –
문서 업데이트는 null 인수입니다. XML 파일은 요청 될 때마다 동적으로 생성 될 것입니다. 다른 이유로도이 파일을 사용할 수 있습니다. RDF/XML을 제안한 이유입니다.이 페이지에 입력 한 것과 같습니다. 입니다.대역폭도 예상보다 낮습니다. 이 커뮤니티의 모든 사용자 이름을 저장하는 전용 RDF 파일은이 페이지를 표시하기 위해로드하는 데 필요한 크기의 약 1/4 크기입니다. – Zorf
성능이 떨어지는 것 외에도 실제로 AJAX를 사용할지 여부와 직각입니다. 직접 검색 (/ isUsernameTaken? username = foo) 또는 XML 문서 (/allUserNames.xml)에 액세스하기 위해 AJAX 또는 다른 솔루션 (예 : 숨겨진 iframe)을 사용할 수 있습니다. –
개인적으로 나는 물건을 단순하게 만들기 위해 JQuery 유효성 검사 플러그인을 사용합니다. http://bassistance.de/jquery-plugins/jquery-plugin-validation/
그러나 일반적으로는 사용자 이름으로 서버에 작은 AJAX 요청 (예. JSON 객체)로 구성하고,이 데이터베이스에 '검색'반환 할 것 중 하나 참/사용자 안타 입력 허위 후 또는 탭 (이벤트 리스너 첨부). 그런 다음 콜백 응답 내에서 선택한 DOM 요소를 변경하여 사용자에게 계정 이름이 이미 데이터베이스에 있는지 여부를 나타냅니다.
- 1. JavaScript를 사용하여 통화 가치를 확인하는 방법은 무엇입니까?
- 2. 트위터처럼 사용자 이름을 확인하는 가장 좋은 방법은 무엇입니까?
- 3. Perl에서 호스트 이름을 확인하는 방법은 무엇입니까?
- 4. 어레이에서 반복되는 이름을 확인하는 방법은 무엇입니까?
- 5. pdf에서 javascript를 사용하여 사용자 이름 얻기
- 6. javascript를 사용하여 필드를 건너 뛰는 방법은 무엇입니까?
- 7. SharePoint에서 현재 사용자 이름을 설정하는 방법은 무엇입니까?
- 8. Windows에서 사용자 이름과 암호를 확인하는 방법은 무엇입니까?
- 9. 사용자 위치 이름을 가져 오는 방법은 무엇입니까?
- 10. JavaScript를 사용하여 "온라인"사용자 새로 고침
- 11. 국가에서 JavaScript를 사용하여 일광 절약 시간제를 사용하고 있는지 확인하는 방법은 무엇입니까?
- 12. Twitter API를 사용하여 사용자/비밀번호가 유효한지 확인하는 방법은 무엇입니까?
- 13. 일반 SMS를 사용하여 사용자/전화의 위치를 확인하는 방법은 무엇입니까?
- 14. Regex와 javascript를 사용하여 필터링하는 방법은 무엇입니까?
- 15. Mechanize를 사용하여 JavaScript를 처리하는 방법은 무엇입니까?
- 16. JavaScript를 사용하여 문자열에서 숫자를 찾는 방법은 무엇입니까?
- 17. Javascript를 사용하여 html 요소를 이동하는 방법은 무엇입니까?
- 18. Javascript를 사용하여 DOM 요소를 대체하는 방법은 무엇입니까?
- 19. Javascript를 사용하여 툴바/북마크릿을 만드는 방법은 무엇입니까?
- 20. JavaScript를 사용하여 쿠키를 가져오고 설정하는 방법은 무엇입니까?
- 21. JavaScript를 사용하여 페이지를 리디렉션하는 방법은 무엇입니까?
- 22. javascript를 사용하여 페이지 번호를 생성하는 방법은 무엇입니까?
- 23. Javascript를 사용하여 쿠키를 제거하는 방법은 무엇입니까?
- 24. JavaScript를 사용하여 입력을 검증하는 방법은 무엇입니까?
- 25. Javascript를 사용하여 레이블의 내용을 변경하는 방법은 무엇입니까?
- 26. JavaScript를 사용하여 이미지를 측면에서 슬라이드하는 방법은 무엇입니까?
- 27. JavaScript를 사용하여 CSS 속성을 적용하는 방법은 무엇입니까?
- 28. JavaScript를 사용하여 모달 팝업을 만드는 방법은 무엇입니까?
- 29. JavaScript를 사용하여 CRUD 신청서를 작성하는 방법은 무엇입니까?
- 30. Javascript를 사용하여 XML 파일을 저장하는 방법은 무엇입니까?
짧은 대답; 자바 스크립트만으로 : –
그렇다면 누군가가 tamperdata를 사용하여 클라이언트 측 자바 스크립트 검사 후 자신의 사용자 이름을 게시하는 것을 막을 수 있습니까? – rook
@ The Rook : 괜찮은 점이지만, 클라이언트 쪽 수표가 무엇이든 최후의 방어선이되어서는 안된다는 것은 말할 나위도 없습니다. 그렇다고해서 클라이언트 측 유효성 검사가 있어서는 안된다는 의미는 아닙니다. 사용자에게 도움이되며 데이터 무결성을위한 것이 아닙니다. –