动态创建的提交按钮无法触发PHP的isset($_POST)判断,原因何在?
问题原因及解决方案
核心问题:错误的按钮元素创建方式
JS代码里用document.createElement("submit")是错误的——HTML中不存在<submit>标签,当前创建的是无效的自定义标签,点击它不会触发表单提交行为,导致PHP端无法接收到$_POST["123"],自然不会输出"BUTTON WORKS"。修正后的JS代码
方法一(使用button标签):let testButton = document.createElement("button"); testButton.type = "submit"; // 必须设置type为submit,否则默认是button类型,不会提交表单 testButton.innerHTML = "Click it"; document.getElementById("form_id").appendChild(testButton); testButton.name = "123";方法二(使用input标签):
let testButton = document.createElement("input"); testButton.type = "submit"; testButton.value = "Click it"; // input用value设置显示文本 document.getElementById("form_id").appendChild(testButton); testButton.name = "123";补充说明
如果不设置button的type="submit",浏览器默认会将其type设为button,这类按钮点击后不会触发表单提交,同样无法触发PHP的判断逻辑,因此必须显式指定type="submit"来确保按钮具备提交表单的功能。
内容的提问来源于stack exchange,提问作者Val
相关产品推荐
相关产品推荐

