2011-12-13 7 views
2

내부 기능, 버튼없는 나는 내 JSP 페이지의 코드 조각 다음이 : I 버튼 insereVuelta을 클릭하면catch되지 않은 형식 오류 : 개체 양식

<form name="programarRutasForm" method="post" action="/SGT_Galp_web/programarRutas.do"> 
    <table> 
     <tr> 
      <td> 
      <input type="button" name="insereVuelta" value="Insere Vuelta" onclick="insereVuelta()" id="insereVuelta"> 
      </td> 
      <td> 
      <input type="submit" name="criaRuta" value="Cria Ruta" id="criaRuta"> 
      </td> 
     </tr> 
    </table> 
    ... 

, 그것은 메시지와 함께 예외가 발생합니다 :

Uncaught TypeError: object is not a function

그러나 양식 외부에 단추를 놓으면 정상적으로 작동합니다. 어떻게 된 일인가? 폼의 제출 버튼 근처에 버튼을 놓아야합니다.

+0

자바 스크립트 코드는 어디에 있습니까? – Max

+1

insereVuelta() 함수를 제공하면 오류의 위치를 ​​추측 할 필요가 없으므로 실제로 도움이됩니다. – alessioalex

+0

아마도 대부분 다른 함수의 내부에서 함수를 정의하고 있기 때문에 전역 범위에 존재하지 않을 것입니다. 또는 당신은 틀린 철자법을 사용하고 있습니다. – Max

답변

0

오류는 세미콜론의 문제 때문입니다. 스크립트에 세미콜론이없는 행이 있는지 확인하십시오. "그런데 왜 양식 밖에서 작동합니까?" 특정 상황에서는 자동 세미콜론 삽입이 실패합니다. 당신은 그것에 관하여 더 많은 것을 여기에서 읽을 수있다 : What are the rules for JavaScript's automatic semicolon insertion (ASI)?

나는 이것이 문제를 해결할 것이라고 느낀다.

+0

나는 이미 문제를 해결했다. 그러나 나는 아직도 그것이 나에 대해서 알지 못한다. 내가 한 유일한 것은 name 속성을 "insertVueltaButton". 빠른 답변 감사합니다. – tt0686

8

저는이 문제가 버튼 자체와 동일한 이름을 가진 함수에서 비롯된 것이라고 생각합니다. 나는 같은 문제가 있었고 버튼의 이름을 바꾸면 그것을 고쳤다. 단추의 이름을 변경하면 마치 당신을 위해 고정 된 것처럼 보입니다.

추측 :

나는 이름이 동일 할 때, 인터프리터는 버튼 자체가 아닌 함수를 호출하려고 추측 것입니다. 버튼이 함수가 아니기 때문에 오류가 발생합니다.

양식 외부에서 내가 왜 효과가 있었는지에 대한 설명이 없습니다. 아마도 버튼이 양식 외부에있을 때 인터프리터는 자동으로 같은 방식으로 접근 가능한 객체로 연결하지 않거나 "부모"를 통해 액세스해야합니다.

+0

이것은 내 문제를 수정했습니다. – gsinha

0

insereVuelta가 입력 이름과 ID 및 함수 이름으로 사용되는 경우 이름과 ID 또는 함수 이름을 변경해보십시오.

관련 문제