我创建了一个函数来启用/禁用提交按钮,我希望它在用户在文本字段中键入内容时运行。
这是我的代码:
<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>
当我测试它时,出现以下 javascript 错误:
错误:
ReferenceError: enableDisablePostButton 未定义 enableDisablePostButton();
这就像函数 enableDisablePostButton() 不存在一样......有谁知道为什么以及我能做什么?
最佳答案
我认为将脚本标记放在表单标记上方应该可以解决问题。 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>
关于javascript - 使用 onkeyup 调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15661781/