Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将行添加到HTML表单中?_Javascript_Html_Forms - Fatal编程技术网

Javascript 如何将行添加到HTML表单中?

Javascript 如何将行添加到HTML表单中?,javascript,html,forms,Javascript,Html,Forms,我正在制作一个简单的应用程序,其中有一系列下拉列表或文本框。一旦用户填写了这些内容,结果字符串就会连接起来并显示给用户。现在我需要一个简单的函数,用户可以按下“+”按钮并添加一行。理想情况下,我需要复制上面的行(包括输入)。例如,我有: 下拉列表文本框文本框下拉列表 串联字符串 如何简单地复制上面的行(减去连接的字符串),包括用户输入的内容。如果现在简单地添加上面的行就好了。我正在使用JavaScript…下面是表单的代码,例如: <form action=""> <inp

我正在制作一个简单的应用程序,其中有一系列下拉列表或文本框。一旦用户填写了这些内容,结果字符串就会连接起来并显示给用户。现在我需要一个简单的函数,用户可以按下“+”按钮并添加一行。理想情况下,我需要复制上面的行(包括输入)。例如,我有:

下拉列表
文本框
文本框
下拉列表

串联字符串

如何简单地复制上面的行(减去连接的字符串),包括用户输入的内容。如果现在简单地添加上面的行就好了。我正在使用JavaScript…下面是表单的代码,例如:

<form action="">
  <input type="text" id="site" value="Site" title="Site" onfocus="clickclear(this, 'Site')" onblur="clickrecall(this,'Site')" />
  <input type="text" id="placementdesc" value="Placement description" title="Placement description" onfocus="clickclear(this, 'Placement description')" onblur="clickrecall(this,'Placement description')" />
  <input type="text" id="placementtype" value="Placement Type" title="Placement Type" onfocus="clickclear(this, 'Placement Type')" onblur="clickrecall(this,'Placement Type')" />
  <input type="text" id="size" value="Size" title="Size" onfocus="clickclear(this, 'Size')" onblur="clickrecall(this,'Size')" />
  <input type="text" id="pricing" value="Pricing" title="Pricing" onfocus="clickclear(this, 'Pricing')" onblur="clickrecall(this,'Pricing')" />
  <select id="servetype" title="Serve Type">
    <option>STD – Standard trafficking type</option>
    <option>SSV – Site-served</option>
    <option>PIX – Pixel</option>
    <option>CCD – Click command</option>
    <option>PCC – Pixel and Click command</option>
    <option>RMV – Rich Media Video</option>
    <option>RME – Rich Media Expand</option>
    <option>RMO – Rich Media Other</option>
  </select>
</form>

STD–标准贩运类型
SSV–现场服务
像素
CCD–单击命令
PCC–像素并单击命令
RMV–富媒体视频
RME–富媒体扩展
RMO–富媒体其他
这很简单,还是我需要使用DOM并使用
createElement
等?如果在一张桌子上做这件事会更容易吗


为了清楚起见,我尽量不使用JQuery…如果这样做更容易,我愿意切换。

在每个输入旁边添加加号按钮,并给它们一个类
addRow
(例如)

将函数映射到
.addRow
的单击事件:

$(".addRow").click(function(){
    $(this)
        .prev("input") // select the previous input element
        .clone() // clone said element
        .appendTo("#formID"); // append the clone to the form
});

请记住,这也将克隆输入的现有值,因此您可能希望在添加克隆值之前使用
val()
清除克隆值。

此示例代码取决于jQuery,因此您还应该在HTML页面中包含jQuery库。也就是说,假设OP使用的是jQuery,实际上这很完美——我也想克隆输入值!我假设这在JQuery中要比在JavaScript中容易得多?@Kiz:这可能会被误解,因为JQuery就是JavaScriptP但是是的,jQuery只是使复制各种Javascript函数变得更容易。@Purmou是真的,但实际上我应该说的是我使用的是纯Javascript,而不是Javascript库..:P