如何防止在javascript中的附加输入框中克隆用户输入

如何防止在javascript中的附加输入框中克隆用户输入,javascript,jquery,html,Javascript,Jquery,Html,当我在模块1的输入框中插入一些内容并单击“添加模块”按钮克隆我所需的元素时,它也会克隆插入的输入,我已尝试使用event.preventDefault阻止该操作;但它仍然在复制输入框,其中插入了模块1中的输入。然而,我无法使用输入框中的“清除”按钮清除输入框。此外,附加的选择选项不起作用,当我选择一个选项时,它不会更改 下面是我的演示:- 下面是我的javascript代码: $document.readyfunction{ $Sadd.clickfunctionevent{ 违约事件; var

当我在模块1的输入框中插入一些内容并单击“添加模块”按钮克隆我所需的元素时,它也会克隆插入的输入,我已尝试使用event.preventDefault阻止该操作;但它仍然在复制输入框,其中插入了模块1中的输入。然而,我无法使用输入框中的“清除”按钮清除输入框。此外,附加的选择选项不起作用,当我选择一个选项时,它不会更改

下面是我的演示:-

下面是我的javascript代码:

$document.readyfunction{ $Sadd.clickfunctionevent{ 违约事件; var lastId=$modules h1.length; var$newLabel=$module-1-label.clone; var$newSc=$module-1-scredit.clone; var$newSgrade=$module-1-sgrade.clone; $newLabel.htmlModule+lastId+1+:; $newSc.findlabel.attrfor,Sc+lastId+1; $newSc.findinput.attrname,Sc+lastId+1.attrid,Sc+lastId+1; $newSgrade.findlabel.attrfor,Sgrade+lastId+1; $newSgrade.findselect.attrname,Sgrade+lastId+1.attrid,Sgrade+lastId+1; $modules.append$newLabel、$newSc、$newSgrade; }; $Sremove.clickfunction{ var lastId=$modules h1.length; iflastId>5{ var lastLi=$modules h1.last.closestli; var lastLi2=lastLi.nextli; var lastLi3=lastLi2.nextli; lastLi.remove; lastLi2.移除; 最后3.取出; } }; }; 在新输入上使用.val清除克隆中的数据 或者执行$clone.find'input'.val;如果有多个输入

对于选择框,您需要添加以下行 在声明变量后或在同一行上

var $newSc = $("#module-1-scredit").clone().find('input').val("");
var $newSgrade = $("#module-1-sgrade").clone().find('option:selected').removeAttr('selected');
$newSgrade.find('option[value="-1"]').attr('selected',true);

编辑:由于默认值为-1,必须处理select的重新选择,但是您可能需要查看此select元素的克隆。也许页面上隐藏了一个空白问题,只是克隆它。

$NexS.Fiff'输入'.Val.工作正常,但当我输入一些输入时,位于附加输入框中的“清除”按钮不清除,我必须使用后台空间来执行此操作。对于我添加的选择框。removeAttrselected;但我仍然无法选择选项,如果我从模块1中选择一个选项,例如A,然后添加一个新模块,它将复制我选择的确切选项,并且在我用一些代码更新小提琴之后,我无法更改它,你能告诉我它现在是怎么工作的吗?fiddle没有更新,这里是我添加你的行时得到的,看看我在这里做了什么。您需要研究触发选择框进行更新,以便它清除以前的选择,清除类似.selected{updated:true};或者是一些类似的东西,你没有把每个模块都放在一个包含的包装中,这让你的生活变得艰难;b没有克隆所有模块(包括前五个模块)的模板;c不必要的id和属性。正确使用HTML,创建一个新的模块应该归结为一行。@Roamer-1888如果有一个我可以遵循的示例,它会很有帮助是的,我想