2013-03-27 6 views
1

제출 버튼을 활성화/비활성화하는 함수를 만들었고, 사용자가 텍스트 필드에 무엇인가 입력 할 때 실행하려고합니다. 여기 onkeyup을 사용하여 javascript 함수 호출하기

내 코드입니다 :

<form name="sidebarPostMessageForm" action="../app/NewMessageAsynch.action"> 
    <input type="hidden" name="conversationId" value="${conversationId}"/> 
    <lalahtml:textarea id="messageText" name="messageText" onkeyup="enableDisablePostButton();" ></lalahtml:textarea> 
    <input type="button" name="postMessage" id="postMessage" onclick="if(this.form.messageText.value.trim().length>0){sidebar_postMessage();this.disabled='disabled'}" value="<ezmi18n:message key="doSendMessage.Label" />"/> 
</form> 
<script type="text/javascript"> 
function enableDisablePostButton(){ 
    if (document.getElementById("messageText").value.trim() == "") { 
     document.getElementById("postMessage").disabled="disabled"; 
    } else { 
     document.getElementById("postMessage").disabled=""; 
    } 
} 
</script> 

나는 그것을 테스트 할 때, 나는 다음과 같은 자바 스크립트 오류 얻을 :

오류 :

ReferenceError가 : enableDisablePostButton이 을 정의되지 않은 enableDisablePostButton을();

debugging with firebug

그것은 사람이 왜 알고 있나요 ... 기능 enableDisablePostButton()가 존재하지 않은 경우처럼 내가 무엇을 할 수 있습니까?

+0

시도 할 때 잘 작동하는 것 같습니다. 스크립트에 더 많은 것이 있습니까? –

+0

아니 ..이게 다 .. .. S – periback2

+0

@ periback2 jsfiddle 설치를 시도해 보았습니다. – Uby

답변

1

나는 문제를 발견했다. 실제로 javascript 블록은 비동기 적으로 가져 오기 때문에로드되지 않았습니다 (ajax). 지금이 사실을 알았고 onkeyup 속성에서 javascript 코드를 직접 설정했습니다.

감사합니다.

1

양식 태그 위에 스크립트 태그를 삽입하는 것이 트릭을 수행해야한다고 생각합니다. enableDisablePostButton 함수는 form 태그 다음에 정의되므로 함수를 찾을 수 없습니다.

<script type="text/javascript"> 
function enableDisablePostButton(){ 
    if (document.getElementById("messageText").value.trim() == "") { 
     document.getElementById("postMessage").disabled="disabled"; 
    } else { 
     document.getElementById("postMessage").disabled=""; 
    } 
} 
</script> 
<form name="sidebarPostMessageForm" action="../app/NewMessageAsynch.action"> 
    <input type="hidden" name="conversationId" value="${conversationId}"/> 
    <lalahtml:textarea id="messageText" name="messageText"  onkeyup="enableDisablePostButton();" ></lalahtml:textarea> 
    <input type="button" name="postMessage" id="postMessage" onclick="if(this.form.messageText.value.trim().length>0){sidebar_postMessage();this.disabled='disabled'}" value="<ezmi18n:message key="doSendMessage.Label" />"/> 
</form> 
+0

, 모두 자바 스크립트 코드/파일은 모든 html 코드 다음에 추가해야합니다 ... 문제가 해결되지 않아야합니다./ – periback2

+0

이 코드는 저에게 효과적입니다. – TREMOR