테스트 사이트 - 개발 중인 베타 버전입니다

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

툥이 9년 전 조회 3,957

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

 

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

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

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
9년 전

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

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

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

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

 

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

 

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

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

툥이
9년 전
답변 감사드립니다^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인