Scenario: 아래와 같은코드에서 버튼까지 바르게 뜨나, 버튼을 누르면 자바스크립트 함수가 실행이 안됨. 삽질좀 하다가 폼을 빼버리니까 또 잘됨.

Solutions: 폼태그안에서 input 태그의 ip와 자바스크립트이 함수명이 같을 경우 오동작 하는 것이었음. 인풋태그 ip와 함수명은 다르게 만들것.

<샘플 소스코드 예시>

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Insert title here</title>
  6. <script type="text/javascript">
  7.     function btn_alert() {
  8.         alert("알람창!!");
  9.     }
  10.    
  11.     function btn_confirm() {
  12.         var check = confirm("확인/취소 버튼");
  13.         if(check)
  14.             alert("확인버튼 클릭");
  15.         else
  16.             alert("취소 버튼 클릭");
  17.     }
  18.  
  19.     function btn_prompt() {
  20.         var name = prompt("이름은?","Park");
  21.         if(name)
  22.             alert("이름은 "+name+" 입니다.")
  23.         else
  24.             alert("질문창 취소")
  25.     }
  26. </script>
  27. </head>
  28. <body>
  29.  
  30.     <form name='aa' id='b' method="post" action="cs">  
  31.         <input type="button"  value="버튼" onclick="javascript:alert('버튼클릭~')" name="btn_alert" ><br/>
  32.         <input type="button" value="알림창" onclick="btn_alert();" name="btn_confirm"  /><br/>
  33.         <input type="button"  value="확인창" onclick="btn_confirm();" name="btn_confirm"/><br/>
  34.         <input type="button" value="플롬프트창" onclick="btn_prompt();" name="btn_prompt"  /><br/>
  35.     </form>  
  36.    
  37.  
  38. </body>
  39. </html>




ps.예전에 오픈 Canlendar.js 소스를 사용한 적이 있엇는데, 마우스를 아무리 textedit 에 클릭해도 캘린더가 안뜬 적이 있었다. 화가 나서 결국 안썼었는데, 아마 비슷한 문제였지 않았나 싶다. 

+ Recent posts