<form action="">
<div id="feedbackWrap">
<div id="feedback">피드백이 들어가는 부분</div>
</div>
<label for="username">사용자 이름 : </label>
<!-- label 부분 눌러도 input이 깜빡거림 -->
<input type="text" id="username">
<label for="pw">비밀번호</label>
<input type="password" id="pw">
<input type="submit" id="LOG IN">
</form>
<label>
을 <input>
요소와 연결하는 방법<input>
에 id 속성을 넣고, <label>
에 id 와 같은 값의 for 속성을 넣기. <form action="">
<div id="feedbackWrap">
<div id="feedback"></div>
</div>
<label for="username">사용자 이름 : </label>
<!-- label 부분 눌러도 input이 깜빡거림 -->
<input type="text" id="username" onblur="checkN()">
<label for="pw">비밀번호</label>
<input type="password" id="pw">
<input type="submit" id="LOG IN">
</form>
</div>
</body>
<script>
function checkN(){
const elName = document.getElementById('username');
const elMsg = document.getElementById('feedback');
if(elName.value.length < 5){ //요소, 입력내용, 글자 수
elMsg.textContent = "이름이 너무 짧습니다."
}
}
</script>
<form action="">
<div id="feedbackWrap">
<div id="feedback"></div>
</div>
<label for="username">사용자 이름 : </label>
<!-- label 부분 눌러도 input이 깜빡거림 -->
<input type="text" id="username">
<label for="pw">비밀번호</label>
<input type="password" id="pw">
<input type="submit" id="LOG IN">
</form>
</div>
</body>
<script>
function checkN(){
const elMsg = document.getElementById('feedback');
if(elName.value.length < 5){ //요소, 입력내용, 글자 수
elMsg.textContent = "이름이 너무 짧습니다."
}
}
const elName = document.getElementById('username');
elName.onblur = checkN;
<form action="">
<div id="feedbackWrap">
<div id="feedback"></div>
</div>
<label for="username">사용자 이름 : </label>
<!-- label 부분 눌러도 input이 깜빡거림 -->
<input type="text" id="username" onblur="checkN()">
<label for="pw">비밀번호</label>
<input type="password" id="pw">
<input type="submit" id="LOG IN">
</form>
</div>
</body>
<script>
function checkN() {
const elMsg = document.getElementById('feedback');
if (elName.value.length < 5) { //요소, 입력내용, 글자 수
elMsg.textContent = "이름이 너무 짧습니다."
}
}
const elName = document.getElementById('username');
elName.addEventListener('blur', checkN, false);
addEventListener(type, listener);
addEventListener(type, listener, options);
addEventListener(type, listener, useCapture);
addEventListener('이벤트', 함수, 이벤트방식(보통은 생략))
<form action="">
<div id="feedbackWrap">
<div id="feedback"></div>
</div>
<label for="username">사용자 이름 : </label>
<!-- label 부분 눌러도 input이 깜빡거림 -->
<input type="text" id="username" onblur="checkN()">
<label for="pw">비밀번호</label>
<input type="password" id="pw">
<input type="submit" id="LOG IN">
</form>
</div>
</body>
<script>
function checkN() {
const elMsg = document.getElementById('feedback');
if (elName.value.length < 5) { //요소, 입력내용, 글자 수
elMsg.textContent = "이름이 너무 짧습니다."
}
}
const elName = document.getElementById('username');
if(elName.addEventListener){ //이벤트 리스너를 인식했을 때
elName.addEventListener('blur', checkN);
}else{ //이벤트 리스너를 인식하지 못할때 대용으로 사용
elName.attachEvent('onblur',checkN);
}
</script>
<form action="">
<div id="feedbackWrap">
<div id="feedback"></div>
</div>
<label for="username">사용자 이름 : </label>
<!-- label 부분 눌러도 input이 깜빡거림 -->
<input type="text" id="username" onblur="checkN()">
<label for="pw">비밀번호</label>
<input type="password" id="pw">
<input type="submit" id="LOG IN">
</form>
</div>
</body>
<script>
const elName = document.getElementById('username');
const elMsg = document.getElementById('feedback');
let myName;
function checkN(myName, minLength) {
myName = elName.value;
if (elName.value.length < minLength) { //요소, 입력내용, 글자 수
elMsg.textContent = `${myName}님 이름은
${minLength}글자 이상으로 써주세요.`;
}
}
elName.addEventListener('blur',function(){
checkN(myName, 5)}
);
</script>
<form action="">
<div id="feedbackWrap">
<div id="feedback"></div>
</div>
<label for="username">사용자 이름 : </label>
<!-- label 부분 눌러도 input이 깜빡거림 -->
<input type="text" id="username" onblur="checkN()">
<label for="pw">비밀번호</label>
<input type="password" id="pw">
<input type="submit" id="LOG IN">
</form>
</div>
</body>
<script>
const elName = document.getElementById('username');
const elMsg = document.getElementById('feedback');
let myName;
function checkN(myName, minLength) {
myName = elName.value;
if (elName.value.length < minLength) { //요소, 입력내용, 글자 수
elMsg.textContent = `${myName}님 이름은
${minLength}글자 이상으로 써주세요.`;
}
}
elName.addEventListener('blur',function(){
checkN(myName, 5)}
);
function autoFocus(){
elName.focus(); //elName에 포커스가 적용 됨.
}
// autoFocus();
// window.autoFocus()와 같은 코드.
window.addEventListener('load', autoFocus);
</script>
<form action="" id="formSignup">
<label for="package">패키지를선택하세요 : </label>
<select id="package">
<option>=======선택=======</option>
<option value="annual">1년 : 30,000원</option>
<option value="monthly">1달 : 5,000원</option>
</select>
<div class="packageHint"></div>
<input type="checkbox" id="terms" onclick="cb()">
<label for="terms">사용권 계약에 동의합니다.</label>
<div class="termsHint"></div>
<input type="submit" value="다음 단계">
</form>
</div>
</body>
<script>
const elForm = document.querySelector('#formSignup'); //form 태그 전체
const elPackage = document.querySelector('#package') //package부분(select)
const elPackageHint = document.querySelector('.packageHint');
const elTerms = document.querySelector('#terms');
const elTermsHint = document.querySelector('.termsHint')
function cb(){
if(elTerms.checked == true){
elTermsHint.textContent = "";
}else{
elTermsHint.textContent = "사용권 계약에 동의해 주세요"
}
}
/* elTerms.onclick = function(){
if(elTerms.checked == true){
elTermsHint.textContent = "";
}
} */
function pHint(){
let sel = elPackage.options[elPackage.selectedIndex].value;
if(sel == "monthly"){
elPackageHint.textContent = "다시 한번 생각해보세요";
}else if(sel == "annual"){
elPackageHint.textContent = "최선의 선택";
}
else{
elPackageHint.textContent = "";
}
}
function checkTerms(e){
e.preventDefault(); //기본속성(화면을 reset함)을 prevent함
if(!elTerms.checked){
elTermsHint.textContent = "사용권 계약에 동의해 주세요"
}else{
elTermsHint.textContent = "";
}
}
elPackage.addEventListener('change', pHint);
elForm.addEventListener('submit', checkTerms);
</script>
screenX : 전체 모니터 스크린에서의 x좌표 위치를 반환(모니터 기준)
screenY : 전체 모니터 스크린에서의 y좌표 위치를 반환(모니터 기준)
pageX : 브라우저 페이지에서의 x좌표 위치를 반환(전체 문서 기준 - 스크롤 화면 포함)
pageY : 브라우저 페이지에서의 Y좌표 위치를 반환(전체 문서 기준 - 스크롤 화면 포함)
clientX : 브라우저 페이지에서의 X좌표 위치를 반환하나 스크롤은 무시하고 해당 페이지의 상단을 0으로 측정(브라우저 화면 기준)
clientY : 브라우저 페이지에서의 Y좌표 위치를 반환하나 스크롤은 무시하고 해당 페이지의 상단을 0으로 측정(브라우저 화면 기준)
offsetX : 이벤트 대상 객체에서의 상대적 마우스 x좌표 위치를 반환(이벤트 대상이 기준)
offsetY : 이벤트 대상 객체에서의 상대적 마우스 y좌표 위치를 반환(이벤트 대상이 기준)