Javascript Jquery帮助基于另一个输入字段创建输入字段

Javascript Jquery帮助基于另一个输入字段创建输入字段,javascript,jquery,Javascript,Jquery,我试图在单击添加输入时创建一个输入字段 使用Jquery创建的输入应该与最近的输入字段相同,但只是在名称中添加了信息 单击添加输入时,文本应更改为“删除输入”,如果单击,则应删除创建的输入字段 我的HTML: <div class="input string optional"> <label for="company_count" class="string optional"> count</label> <input type="text" siz

我试图在单击添加输入时创建一个输入字段

使用Jquery创建的输入应该与最近的输入字段相同,但只是在名称中添加了信息

单击添加输入时,文本应更改为“删除输入”,如果单击,则应删除创建的输入字段

我的HTML:

<div class="input string optional">
<label for="company_count" class="string optional"> count</label>
<input type="text" size="50" name="company[count]" maxlength="255" id="company_count" class="string optional">
<p class="addinput">Add input</p>
</div>

<div class="input string optional">
<label for="company_navn" class="string optional"> Navn</label>
<input type="text" size="50" name="company[navn]" maxlength="255" id="company_navn" class="string optional">
<p class="addinput">Add input</p>
</div>
更新: 输入字段:

<div class="input numeric integer optional"><label for="company_prisar" class="integer optional"> Pris 1. år</label><input type="number" step="1" size="50" name="company[prisar]" id="company_prisar" class="numeric integer optional"></div>
pris1。år
单击添加输入时,将添加此输入:

<input type="number" step="1" size="50" name="company[prisarinfo]" id="company_prisarinfo" class="numeric integer optional">

我想你有一个打字错误,应该是:

$('p.addinput').toggle(function(){});

你能详细介绍一下你想要这个函数做什么吗?我不清楚。

如果我理解你的问题是正确的,那么像这样的事情应该可以解决问题:

$('button.add', '#companyinfo').live('click', function(e) {
    var element = $(this).parents('.input').find('input').last().clone().prop('value','');
    var counter = $(this).parents('.input').find('input').length + 1;
    var newname = element.prop('id') + '_' + counter;
    element.prop('name', newname);
    element.insertAfter($(this).parents('.input').find('input').last());
    $('button.remove').removeProp('disabled');
})
$('button.remove', '#companyinfo').live('click', function(e) {
    $(this).parents('.input').find('input').last().remove('input');
    if ($(this).parents('.input').find('input').length == 1) {
        $(this).parents('.input').find('button.remove').prop('disabled', 'disabled');
    }
});

请注意,我对您的html进行了一些修改,您可以看到一个。

我想您的意思是,不是“toogle()”?如果您觉得合适,请将我的答案标记为已接受,如果不提供更多关于答案失败的详细信息,我希望通过Rails的更多输入使其成为一个答案。当有人点击“AddInput”时,他似乎想添加一个额外的输入,但不清楚他是想将它添加到自己的DIV中,还是附加到另一个输入旁边或之前的同一个DIV中。只是不太清楚他想要什么。是的,几乎是我想要的,只是名称应该是company[最近的输入字段名称+信息]例如,如果在名称company[prisar]中添加了一个输入字段,则添加的输入字段应该是company[prisarinfo]。我已经用一个例子更新了我的帖子我根据你的答案创建了这个帖子:但是信息在我的新版本之外,编辑很少:仍然有相同的问题这是用正则表达式修复的,在这里查看我的modyfied版本,我还限制了最多一个额外的信息输入字段:当我在第一次输入时按add,然后在第二次输入时按add和remove,在第一次输入时添加按钮再次出现
$('button.add', '#companyinfo').live('click', function(e) {
    var element = $(this).parents('.input').find('input').last().clone().prop('value','');
    var counter = $(this).parents('.input').find('input').length + 1;
    var newname = element.prop('id') + '_' + counter;
    element.prop('name', newname);
    element.insertAfter($(this).parents('.input').find('input').last());
    $('button.remove').removeProp('disabled');
})
$('button.remove', '#companyinfo').live('click', function(e) {
    $(this).parents('.input').find('input').last().remove('input');
    if ($(this).parents('.input').find('input').length == 1) {
        $(this).parents('.input').find('button.remove').prop('disabled', 'disabled');
    }
});