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

通过编程动态创建FORM表单后 .submit提交事件无法触发问题

问题根因
  • 你采用分段append拼接表单DOM的写法存在逻辑错误:jQuery调用append()插入不完整的<form>起始标签时,浏览器会自动补全闭合该标签,后续追加的所有表单字段、提交按钮都会被渲染在form标签外部,点击submit按钮自然无法触发#revForm的提交事件
  • 原有代码拼接input属性时,id和name之间没有空格,属于语法瑕疵,可能导致部分浏览器解析属性异常
修复方案

推荐先拼接完整的表单HTML字符串,再一次性插入容器,避免DOM分段渲染的问题,修正后代码如下:

$(function () {
    
    var form_str="";
    var fields=<?php echo json_encode($fields); ?>;
    var cfields=<?php echo json_encode($capFields); ?>;
    var qdata=<?php echo json_encode($qdata); ?>;


    $("#returnvalbox").show();

    // 先拼接form起始标签
    form_str += "<form id='revForm' name='revForm' method='post' action='#'>";

    var i=0;

    Object.keys(qdata).forEach(key => {  // create the form body
        // 修复属性间无空格的问题
        if (key=="id") {   // you can't edit the id
            form_str += "<label for='"+key+"'>"+cfields[i++]+" </label>";
            form_str += "<input  type='text' class='body' ";
            form_str += "id='"+key+"' name='"+key+"' value='"+qdata[key]+"' readonly  ><br>";  
        }else {
            form_str += "<label for='"+key+"'>"+cfields[i++]+" </label>";
            form_str += "<input  type='text' class='hov body' ";
            form_str += "id='"+key+"' name='"+key+"' value='"+qdata[key]+"'><br>"; 
        } 
    }); //Object.keys
    
    // 拼接按钮部分
    form_str += "<br><input  type='submit' class='cbut hov' value='Update'>"
                    + "&nbsp;&nbsp;<button type='button' class='cbut hov' id='bak'>Go Back</button><p></p>";
    // 拼接form闭合标签
    form_str += "</form>";

    // 一次性把完整表单插入容器
    $(".formcontainer").append(form_str);
                
    $("#revForm").submit(function(event) {  
        event.preventDefault();
        alert("submitted Line 142");
    }) // submit 
            
}) // ready

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:24:04