You need to enable JavaScript to run this app. Django开发中JavaScript无法正常控制提交按钮禁用启用状态求助
优惠活动
大模型
产品
解决方案
定价
更多

Django开发中JavaScript无法正常控制提交按钮禁用启用状态求助

问题原因与修复方案

核心问题

你当前代码的主要问题是仅绑定了keyup事件,无法覆盖鼠标粘贴、拖拽输入等非键盘输入的场景,同时可能存在浏览器缓存旧静态文件的问题,导致修改后的代码没有生效。

优化后的代码

1. 替换listing.js内容

document.addEventListener('DOMContentLoaded', function () {
    hide_submit_review_button();
});

function hide_submit_review_button() {
    const submitReviewBtn = document.getElementById('submit-review-button');
    const reviewInput = document.getElementById('review-contents');

    if (submitReviewBtn && reviewInput) {
        // 初始化禁用按钮
        submitReviewBtn.disabled = true;
        
        // 统一处理按钮状态逻辑
        const toggleSubmitBtn = () => {
            const inputLen = reviewInput.value.length;
            submitReviewBtn.disabled = !(inputLen > 0 && inputLen <= 100);
        };

        // 绑定input事件,覆盖所有输入场景(键盘输入、粘贴、自动填充等)
        reviewInput.addEventListener('input', toggleSubmitBtn);
        // 页面加载时主动执行一次,适配浏览器自动回填内容的场景
        toggleSubmitBtn();
    }
}

2. 可选优化(限制输入长度)

在listing.html的输入框中添加maxlength属性,从前端层面直接禁止用户输入超过100字符的内容:

<input type="text" class="form-control" name="review" id="review-contents" placeholder="Write a review..." maxlength="100">

验证步骤

修改代码后,强制刷新浏览器页面(Windows按Ctrl+Shift+R,Mac按Cmd+Shift+R)清空静态文件缓存,再测试功能即可。

内容的提问来源于stack exchange,提问作者equanimity

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 14:48:03