You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

提交HTML表单时Alert提示未显示、.html()方法无法回显数据问题求助

问题原因及修复方案

核心错误点

  • 变量作用域错误:你在if/else代码块内部用let关键字声明delivery变量,let存在块级作用域限制,仅在当前声明的代码块内有效,你后续拼接回显字符串时访问的delivery属于未定义变量,会直接触发JS运行错误,导致回显逻辑中断。
  • Alert换行语法错误:原生alert()弹窗仅支持纯文本内容,不识别HTML的<br>换行标签,需要换行时要使用转义字符\n。
  • 复选框选中判断写法不严谨:原写法$('#delivery:checked').val() == 'y'在复选框未选中时,选择器匹配不到元素会返回undefined,虽然也能触发else分支,但更稳妥的写法是用is(':checked')直接判断选中状态。

修正后的完整代码

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <meta charset="utf-8" />

    <script src="scripts/jquery-3.2.1.js"></script>
    
    <script>
        function displayInfo() {
            let product = $('#productName').val();
            let quantity = parseInt($('#qty').val());
            // 提前在块外部声明delivery变量
            let delivery;
            // 改用稳妥的选中状态判断
            if ($('#delivery').is(':checked')) {
                delivery = "需要配送";
            } else {
                delivery = "无需配送";
            }
            var info = "商品名称:" + product + "<br>" + "购买数量:" + quantity + "<br>" + "是否配送:" + delivery;
            $("#info").html(info);

            // 如需使用alert弹窗,用以下写法(换行用\n)
            // alert("商品名称:" + product + "\n" + "购买数量:" + quantity + "\n" + "是否配送:" + delivery);
        }
    </script>

</head>
<body>
    <h1>示例页面</h1>
    
    <form onsubmit="displayInfo(); return false;">
        <p>输入你要购买的商品名称:<input type="text" id="productName"/></p>
        <p>输入你要购买的数量:<input type="text" id="qty" /></p>
        <p>是否需要配送?<input type="checkbox" id="delivery" value="y" /></p>
        <p><input type="submit" value="提交订单" /></p>
    </form>

    <div id ="info"></div>
</body>
</html>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:06:03