如何动态增加表单field

如何动态增加表单field,第1张

1. formsets是同一个model的组合,而这里是两个model,(Book和Author)

2. django的form如果用后台渲染的话,是在生成form的时候就确定了form里面的字段,哪怕是动态生成,而这里的需求是前台(js)动态修改form里面的字段(增删字段)

目前我的解决方案是 自己写html模板,已经放弃了form表单,然后ajax传入后台,自己解析,保存。

1、先用document.createElement方法创建一个input元素!

复制代码 代码如下:

var newInput = document.createElement("input")

2、设定相关属性,如name,type等

复制代码 代码如下:

newInput.type=mytype

newInput.name="input1"

3、用appendChild方法,将元素追加到某个标签内容中!

复制代码 代码如下:

TemO.appendChild(newInput)

Javascrip核心代码:

复制代码 代码如下:

<script language="javascript">

function AddElement(mytype){

var mytype,TemO=document.getElementById("add")

var newInput = document.createElement("input")

newInput.type=mytype

newInput.name="input1"

TemO.appendChild(newInput)

var newline= document.createElement("br")//创建一个BR标签是为能够换行!

TemO.appendChild(newline)

}

</script>

完整代码如下:

<html >

<head>

<title>动态添加表单元素</title>

</head>

<script language="javascript">

function AddElement(mytype){

var mytype,TemO=document.getElementById("add")

var newInput = document.createElement("input")

newInput.type=mytype

newInput.name="input1"

TemO.appendChild(newInput)

var newline= document.createElement("br")

TemO.appendChild(newline)

}

</script>

<body>

<form action="" method="get" name="frm">

<div id="add">

<input type="text" name="textfield">

</div>

</form>

<input name="" type="button" value="新建文本框" onClick="AddElement('text')" />

<input name="" type="button" value="新建复选框" onClick="AddElement('checkbox')" />

<input name="" type="button" value="新建单选框" onClick="AddElement('radio')" />

<input name="" type="button" value="新建文件域" onClick="AddElement('file')" />

<input name="" type="button" value="新建密码框" onClick="AddElement('password')" />

<input name="" type="button" value="新建提交按钮" onClick="AddElement('submit')" />

<input name="" type="button" value="新建恢复按钮" onClick="AddElement('reset')" />

</body>

</html>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/7926252.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-11
下一篇2023-04-11

发表评论

登录后才能评论

评论列表(0条)

    保存