javascript - 使用 onkeyup 调用 javascript 函数

标签 javascript html function onkeyup

我创建了一个函数来启用/禁用提交按钮,我希望它在用户在文本字段中键入内容时运行。

这是我的代码:

<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();

debugging with firebug

这就像函数 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/

相关文章:

javascript - 单击功能可显示悬停叠加层 - 单击时显示,但第二次单击时不会消失

javascript - TinyURL JavaScript API 触发错误

javascript - ejs从文件加载模板

html - 301 重定向,目标 URL 上不带斜杠

function - 具有可变参数数量的 OCaml 函数

javascript - 使用递归函数解决了 : How to implement build in function . eval()

python - 如何将函数应用于 Pyspark 数据框列?

javascript - 声明 jQuery 变量的官方正确方法是什么?

javascript - 如何将此 if 语句转换为箭头函数?

javascript - 经常自动点击 onclick 事件