input 상자 의 빈 칸 문 제 를 해결 합 니 다.
8684 단어 일상 개발 에 직면 한 문제
우리 가 일상적으로 일 하 는 전후 단 상호작용 에서 form 폼 을 통 해 input 상자 의 내용 을 자주 제출한다. 그러나 예 를 들 어 사용자 이름, 비밀번호 등 입력 상 자 는 빈 칸 을 입력 하 게 할 수 없다. 계 정의 경우 사용자 가 무의식중에 빈 칸 을 입력 하면 사용자 이름 이 계속 오 류 를 일 으 킬 수 있다.
input 의 빈 칸 을 해결 하 는 데 자주 사용 되 는 방법
상용 방식 은 다음 과 같다.
. trim () 을 통 해 해결 합 니 다. 문자열 을 가 져 온 후에 두 개의 빈 칸 을 삭제 합 니 다.
$(function () {
var str = " There are Spaces at both ends ";
str.trim()
console.log(str) // There are Spaces at both ends
})
정규 표현 식 과 일치 하여 빈 칸 을 제거 합 니 다.
정규 검 사 를 통 해 여러 가지 방식 이 있 는데, 일반적으로 키보드 이벤트 와 input 상자 의 변 화 를 감청 합 니 다.
1. 키보드 등록 을 통한 감청 이벤트
$(function () {
document.getElementById('#input').onkeyup = function(){ //keyup keydown/keypress
this.value=this.value.replace(/\s/g, "")
}
})
2. 동적 렌 더 링 요 소 를 등록 키보드 이벤트 (이벤트 의뢰)
$(function () {
$(document).find("input").on("keyup",function(e){ //keyup keydown/keypress
this.value=this.value.replace(/\s/g, "")
})
})
onkeydown / okeypress / okeyup 세 가지 중 어느 것 이 든 감청 키보드 사건 의 구체 적 인 단점 은 다음 3. input 의 onchange 사건 (단점: input 가 초점 을 잃 은 후에 만 실 행 됩 니 다)
<input type="text" id="fname" onchange="myFunction()">
<script>
function myFunction(){
var x=document.getElementById("fname");
x.value=x.value.toUpperCase();
}
</script>
위의 몇 가지 방식 은 사용자 가 input 상자 에 빈 칸 을 입력 하 는 것 을 막 을 수 있 지만, 사용자 가 마 우 스 를 클릭 하여 붙 여 넣 는 빈 칸 을 표시 할 수 없습니다.
$(document).find("input").on("input",function(e){
this.value=this.value.replace(/\s/g, "")
})
input 의 input 사건 을 통 해 코드 의 실시 간 모니터링 을 할 수 있 습 니 다. 주요 input 의 값 이 바 뀌 면 감지 할 수 있 기 때문에 사용자 가 키 보드 를 통 해 입력 하 는 빈 칸 을 차단 할 뿐만 아니 라 마 우 스 를 통 해 붙 여 넣 은 빈 칸 도 사용 하지 않 습 니 다!