input text에서 특수문자 입력을 막는 제대로 막는 방법좀..ㅠ

input text에서 특수문자 입력을 막는 제대로 막는 방법좀..ㅠ

QA

input text에서 특수문자 입력을 막는 제대로 막는 방법좀..ㅠ

본문


<script type="text/javascript">
$(document).ready(function(){
 fn_specialCharacters("txt_str");
});
function fn_specialCharacters(id){
 $("#" + id).bind("keyup",function(){
  
  var objEv = event.srcElement.value;
  var num   = ",.;:={}[]()<>?_|~`!@#$%^&*-+\"'\\/ ";
  event.returnValue = true;
  if(-1 != num.indexOf(objEv.charAt(objEv.length-1)))
  {
   event.returnValue = false;
  }
  if(!event.returnValue)
  {
    alert("특수문자는 입력하실 수 없습니다.");
   $("#" + id).val(objEv.substring(0, objEv.length-1));
  }
 });
}
 </script>

 

검색을 통해서 이런식으로 했는데 입력을 하고 잘못써서 빈칸으로 지우게 되면 경고문이 뜨더라고요..

그리고 text 필드마다 하나씩 저 스크립트에서 txt_str부분을 변경해야 하던데.. 저 스크립트 하나를 고정으로는 쓸 수 없는건가요?? 매번 하나씩 복붙하기도 그렇고.. 도움 부탁드리겠습니다..

이 질문에 댓글 쓰기 :

답변 1

값이 없을때는 체크하지 않도록 하면 되지 않을까 싶네요.

  if(objEv.length && -1 != num.indexOf(objEv.charAt(objEv.length-1)))

그리고 특정아이디보다는 클래스로 체크하면 되지 않을까 싶구요.

bind보다는 on이 더 나을듯 합니다.

 


<script type="text/javascript">
$(document).ready(function(){
 fn_specialCharacters(".chkinput");
});
function fn_specialCharacters(cname){
 $(document).on("keyup", cname, function(){
  
  var objEv = event.srcElement.value;
  var num   = ",.;:={}[]()<>?_|~`!@#$%^&*-+\"'\\/ ";
  event.returnValue = true;
  if(objEv.length && -1 != num.indexOf(objEv.charAt(objEv.length-1)))
  {
   event.returnValue = false;
  }
  if(!event.returnValue)
  {
    alert("특수문자는 입력하실 수 없습니다.");
   $(this).val(objEv.substring(0, objEv.length-1));
  }
 });
}
</script>

 

체크할 input의 class에 chkinput 추가해주시면 될겁니다.

답변을 작성하시기 전에 로그인 해주세요.
전체 123,592 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT