Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何生成<;表格:输入>;从JS动态标记?_Javascript_Html_Dom - Fatal编程技术网

Javascript 如何生成<;表格:输入>;从JS动态标记?

Javascript 如何生成<;表格:输入>;从JS动态标记?,javascript,html,dom,Javascript,Html,Dom,我需要从JS动态生成两种类型的字段,带有特定的标记和。 第一个应为输入字段,第二个必须隐藏。 问题是,没有被识别为输入,并且根本没有显示。但是可以从页面源代码中看到 if (bank != null) { var fields = bank.additionalFields; var additionalRows = document.getElementById("additionalRows"); for (i = 0; i < fields.length; i

我需要从JS动态生成两种类型的字段,带有特定的标记
。 第一个
应为输入字段,第二个必须隐藏。 问题是,
没有被识别为输入,并且根本没有显示。但是可以从页面源代码中看到

if (bank != null) {
    var fields = bank.additionalFields;
    var additionalRows = document.getElementById("additionalRows");
    for (i = 0; i < fields.length; i++) {

        //from here generates jsp inputs:
        //1 - <form:input>
        //2 - <form:hidden>  for each element from fields

        var formInput = document.createElement("form:input");
        var formHidden = document.createElement("form:hidden");

        formInput.setAttribute("path", "paymentInfo.fields[" + i + "].value");
        formHidden.setAttribute("path", "paymentInfo.fields[" + i + "].id");

        formInput.setAttribute("type", "text");
        formHidden.setAttribute("type", "text");

        formInput.setAttribute("value", "");
        formHidden.setAttribute("value", fields[i].id);

        additionalRows.appendChild(formInput);
        additionalRows.appendChild(formHidden);
    }
}
if(bank!=null){
var字段=bank.additionalFields;
var additionalRows=document.getElementById(“additionalRows”);
对于(i=0;i
JSP生成的其他
字段正确显示在页面上。 链接到生成的页面源代码>>
怎么解决呢?

你想做的事情很可能无法完成
似乎是服务器端标记-这就是为什么它们只在java端工作

您可以使用javascript以类似于当前方法的方式生成常规和标记:

    var formInput = document.createElement("input");
    var formHidden = document.createElement("input");

    formInput.setAttribute("type", "text");
    formHidden.setAttribute("type", "hidden");

然后将它们附加到表单中。

似乎您正在尝试使用客户端代码生成服务器端代码。您需要在客户端插入普通的输入标记-而不是jsp ONE。formHidden也可以是
document.createElement(“输入”)
是的,但是稍后我收集了用户插入到
的所有数据,这些数据通过运行所有
@user2595541的单个方法
selectMethodForm
,如果您需要进一步处理表单数据,您需要将其发布到服务器并以这种方式处理,或者更改生成这些标记的方法。您可能希望了解“JSP元素的动态生成”。目前,您不能以这种方式混合使用浏览器/客户端(Javascript)和服务器(JSP)代码。