在用户从另一个select元素进行选择之后,我动态地创建一个HTML select元素。但是,用于检查表单的PHP脚本无法识别新元素,并指示它为空:
以下是片段:

some.js:
if(document.getElementById(firstselect).value=='somvalue'){
    document.getElementById(gamsDiv).removeChild(gamsElem);
    gamsElem = document.createElement("select");
    gamsElem.id = "FacilityGamsId";
    gamsElem.name = "FacilityGamsId";
   gamsElem.setAttribute("onChange", "updateHidden(this);makeUpdateRequest(arguments[0],this)");
    opt = document.createElement("option");
    opt.text="Select one ";
    opt.value=0;
    gamsElem.options.add(opt);
    .....some other stuff
    .....
    document.getElementById(gamsDiv).appendChild(gamsElem);

}
the php script:

if($_POST){
    var_dump($_POST['FacilityGamsId'];
}

result: null

服务器post操作不识别js脚本中的任何动态HTML元素有什么原因吗。如果我检查/检查新创建的元素,则名称和id完全相同。
任何帮助都是非常感谢的;)。谢谢

最佳答案

它不会添加到存储在浏览器DOM中的表单中。
这家伙也这么想:dynamic element created not POSTed
一个解决方案是构建动态表单服务器端——如果它真的需要客户端,我认为除了DOM之外,还需要操作表单(存储在document.forms中)。

09-28 02:55