点击按钮,用javascript生成新表单
Generating new form with javascript with onclick of button
我正试图让我的用户生成一个表单,以便通过JavaScript和w3c-dom自动添加所需的团队成员。但它不起作用。
这是我的JavaScript函数,还有html页面和我试图生成的表单:
var counter = 0;
function member_card()
{
counter++;
var newFields = document.getElementById('teamform').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
var newField = newFields.childNodes;
for (var i=0;i<newField.length;i++) {
var theName = newField[i].name
if (theName)
newField[i].name = theName + counter;
}
var insertHere = document.getElementById('addform');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
window.onload = member_card;
<section class="container" xmlns="http://www.w3.org/1999/html">
<div class="row addform">
<div class="col-md-6 addform-col">
<div class="row input-field">
<div class="col-md-4">
<label class="add-lable">Team Member<spna style="color:red">*</spna></label>
</div>
<div name="teamform" class="col-md-6" style="display: none">
<form>
<div name="imageholder" class="row tm-image-holder">
<div class="col-md-12"><div style="background-image: url(../img/DSC_3305.jpg);" class="tm-img"></div></div>
</div>
<a name="photo" href="#" class="btn btn-block btn-lg btn-primary inout-margin mybut"><span class="glyphicon glyphicon-search"></span> Browse Photo</a>
<input name="name" type="text" class="add-input input-margin" placeholder="Name, Mohammad, ... *">
<input name="job" type="text" class="add-input" placeholder="Job, Developer, Designer, ... *">
<textarea name="explain" class="add-textarea input-margin" rows="4" placeholder="Explain this member in 2 to 4 lines *"></textarea>
</form>
</div>
<form method="post" action="">
<input type="button" id="member_card" value="Give me more fields!" />
</form>
</div>
</div>
</div>
</section>
没有id="teamform"的元素。你需要改变name="teamform"
至id="teamform"
在您的html中。
要解决这类问题,通常最简单的方法是尝试在Chrome或其他具有开发工具的浏览器中运行代码,然后打开调试器控制台查看代码的失败情况。
var counter = 0;
function member_card()
{
counter++;
debugger;
var newFields = document.getElementById('teamform').cloneNode(true);
newFields.id = '';
newFields.style.display = 'block';
var newField = newFields.childNodes;
for (var i=0;i<newField.length;i++) {
var theName = newField[i].name
if (theName)
newField[i].name = theName + counter;
}
var insertHere = document.getElementById('addform');
insertHere.parentNode.insertBefore(newFields,insertHere);
}
window.onload = member_card;
<section class="container" xmlns="http://www.w3.org/1999/html">
<div class="row addform" id="addform">
<div class="col-md-6 addform-col">
<div class="row input-field">
<div class="col-md-4">
<label class="add-lable">Team Member<spna style="color:red">*</spna></label>
</div>
<div id="teamform" class="col-md-6" style="display: none">
<form>
<div name="imageholder" class="row tm-image-holder">
<div class="col-md-12"><div style="background-image: url(../img/DSC_3305.jpg);" class="tm-img"></div></div>
</div>
<a name="photo" href="#" class="btn btn-block btn-lg btn-primary inout-margin mybut"><span class="glyphicon glyphicon-search"></span> Browse Photo</a>
<input name="name" type="text" class="add-input input-margin" placeholder="Name, Mohammad, ... *">
<input name="job" type="text" class="add-input" placeholder="Job, Developer, Designer, ... *">
<textarea name="explain" class="add-textarea input-margin" rows="4" placeholder="Explain this member in 2 to 4 lines *"></textarea>
</form>
</div>
<form method="post" action="">
<input type="button" id="member_card" value="Give me more fields!" />
</form>
</div>
</div>
</div>
</section>
相关文章:
- 如何创建一个表并在单击按钮时插入此标签和文本字段
- (extjs)获取表单中单选按钮的选定值.不返回该值
- 在另一个可观察量完成后触发第二个表单提交单击
- 由于正在加载modernizr,表单在单击时未提交
- Jquery在表WITH函数中追加新行后添加单击事件
- 表排序器分页使表行不可单击
- 您如何控制在填写表单时单击下一步时 iOS/Android 将关注哪个字段
- 如何使用 foreach 循环在表中重复单选按钮
- 高级表单提交-单选、复选框和重定向
- 如何重置新添加的表单输入
- 在表单中单击“提交”按钮时,请关注空字段
- 在表中创建带有输入的新行,然后单击保存该输入的值
- 我想显示数据库中的数据.如果我们新添加一个表单数据,我想附加显示的新帖子而不使用代码点火器刷新
- 本地存储表单以将最后一个当前表单设置为新的当前表单
- 在IE中使用新的html5表单属性序列化失败
- 创建新的HTML表单而不重置之前的输入
- 为Ajax Post添加新值到表单数据
- 如何使用下拉菜单[Select tag]打开新的动态表单
- IE9在表单提交上打开新选项卡(表单具有target属性,指向动态创建的iframe)
- 每次提交新的搜索表单时删除表行