如何用js动态给from页面增加input

</head>
<body>
<div align="center">
<div>
<h2>图片批量上传:仅限jpg格式</h2>
<%
String json = "";
if (request.getParameter("fileStr") != null) {
json = request.getParameter("fileStr");
json = json.replace("\"", "'");
}
%>
<%=json%>
</div>

<button id="b1" onclick="add()">增加+</button>
<br>
<form id="pic_load_form"
action="cn.chinatowercom.res.inventory.load.picupload.flow"
;
method="post" enctype="multipart/form-data">
<input type="file" id="file" name="resfile" class="nui-htmlfile"
width="300px" required="true" limitType="*.jpg"
requiredErrorText="请选择上传的文件!"> <br> <input
type="hidden" name="fileStr" value="<%=json%>" />
</form>

<br>
<div align="center">
<a class="nui-button" iconCls="icon-upload" onclick="submit()">
开始上传</a><br> <br> <br>
</div>
</div>
<script type="text/javascript">
nui.parse();

function submit() {
var form = new nui.Form("#pic_load_form");
form.validate();//验证表格所有单元格
var count = 9;
for (var x = 0; x < 9; x++)
if (form.isValid() == false) {
count--;
}
if (false) {
alert("至少要上传一张图片");
return;
}
alert("即将上传" + count + "张图片");
nui.loading("正在上传文件,请稍候。。。");
document.getElementById("pic_load_form").submit();
//window.close();
}
function add() {
var form = document.getElementById("pic_load_form");
var node = form.rows[1];
var cNode = node.cloneNode(true);
form.appendChild(cNode);
document.getElementById("b1").disabled = newTr.rowIndex == 9;
}
</script>
</body>

自己写的add方法不行,就是实现点击button按钮实现from里的第一个input动态增加,最多增加九个,折腾了好久不行,拜托大牛帮帮忙!非常感谢!

这样:

<body>

<form id='form'> --定义form

</form>

<script>

var input = document.createElement('input');  //创建input节点

input.setAttribute('type', 'text');  //定义类型是文本输入

document.getElementById('form').appendChild(input ); //添加到form中显示

</script>

</body>

扩展资料:

注意事项

一、form属性可以使input标签不再form表单内时也属于form表单中的一部分

<form action="xxx" id="forms">

<input type="submit" value="提交">

</form>

<input type="text" form="forms" name="names">

<!-- IE中不支持这个属性 -->

二、JavaScript提交表单时,可以在input标签内添加required属性,在内容为空的时候阻止表单提交。

使用required属性时添加oninvalid属性可以自定义提示文字

<form action="xxx" method="post">

  <input type="text" name="fname" required oninvalid="setCustomValidity('不能为空')">

  <input type="submit" value="提交">

</form>

<!-- IE9及更早版本不支持 -->

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-25
<!DOCTYPE HTML>
<html>
<head>
<meta charset=UTF-8>
<title>recursion</title>
<style type="text/css">
</style>
<script type="text/javascript">
function add ()
    {
    var form = document.getElementById ("pic_load_form");
    var node = form.children[0];
    var str = node.outerHTML;
    form.innerHTML += str + "<br / >";
    if (form.resfile.length == 9)
        {
        b1.disabled = 'disabled';
        }
    }
</script>
</head>
<body>
<div align="center">
<div>
<h2>图片批量上传:仅限jpg格式</h2>
</div>

<button id="b1" onclick="add()">增加+</button>
<br>
<form id="pic_load_form" action="cn.chinatowercom.res.inventory.load.picupload.flow" method="post" enctype="multipart/form-data">
<input type="file" id="file" name="resfile" class="nui-htmlfile" width="300px" required="true" limitType="*.jpg" requiredErrorText="请选择上传的文件!">
<br> <input type="hidden" name="fileStr" value="<%=json%>" />
</form>

<br>
<div align="center">
<a class="nui-button" iconCls="icon-upload" onclick="submit()"> 开始上传</a><br> <br> <br>
</div>
</div>
</body>
</html>

追问

非常感谢大神帮助!这种方法确实很不错,可以让input增加,可是很遗憾增加之后就不能点击浏览按钮浏览要上传的文件了,用的是封装的js框架,能有办法让增加后并重新加载js框架并且增加的不消失吗?

追答

我不太了解你的js框架,反正这个测试是可以浏览文件的

本回答被提问者采纳
第2个回答  推荐于2017-09-22

1、动态创建input节点

2、往form中添加Input节点

示例:

<body>
<form id='form'> --定义form
</form>
<script>
var input = document.createElement('input');  //创建input节点
input.setAttribute('type', 'text');  //定义类型是文本输入
document.getElementById('form').appendChild(input ); //添加到form中显示
</script>
</body>

相似回答