【发布时间】:2011-09-04 09:45:00
【问题描述】:
我有一个脚本可以动态地将行添加到具有默认值的表单中:
$(document).ready(function() {
var defaults = {
'name[]': 'Name',
'email[]': 'Email',
'organisation[]': 'Organisation',
'position[]': 'Position'
};
var setDefaults = function(inputElements, removeDefault)
{
$(inputElements).each(function() {
if (removeDefault)
{
if ($(this).data('isDefault'))
{
$(this).val('')
.removeData('isDefault')
.removeClass('default_value');
}
}
else
{
var d = defaults[this.name];
if (d && d.length)
{
this.value = d;
$(this).data('isDefault', true)
.addClass('default_value');
}
}
});
};
setDefaults(jQuery('form[name=booking] input'));
$(".add").click(function() {
var x = $("form > p:first-child").clone(true).insertBefore("form > p:last-child");
setDefaults(x.find('input'));
return false;
});
$(".remove").click(function() {
$(this).parent().remove();
});
// Toggles
$('form[name=booking]').delegate('input', {
'focus': function() {
setDefaults(this, true);
},
'blur': function() {
if (!this.value.length) setDefaults(this);
}
});
});
对于以下表格:
<form method="post" name="booking" action="bookingengine.php">
<p><input type="text" name="name[]">
<input type="text" name="email[]">
<input type="text" name="organisation[]">
<input type="text" name="position[]">
<span class="remove">Remove</span></p>
<p><span class="add">Add person</span><br /><br /><input type="submit" name="submit" id="submit" value="Submit" class="submit-button" /></p>
</form>
我现在想将表单分成 2 个部分,每个部分都可以动态添加行。第二部分只有姓名和电子邮件的空格,因此在添加任何其他行之前,整个表单看起来像这样:
但我不确定如何实现这一点。要么我会使用单独的脚本创建一个单独的表单,然后需要知道如何将两个表单中的信息一起提交,或者我只有一个表单,但随后需要弄清楚如何将行动态添加到每个部分.
有人可以帮忙吗?
谢谢,
尼克
【问题讨论】:
标签: javascript forms dynamic add