Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.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 jQuery remove()不实际删除DIV中的表单字段_Javascript_Jquery - Fatal编程技术网

Javascript jQuery remove()不实际删除DIV中的表单字段

Javascript jQuery remove()不实际删除DIV中的表单字段,javascript,jquery,Javascript,Jquery,这让我有点发疯 我有一个带有一组动态div的表单,每个div都填充了几个表单字段。用户可以删除其中一个div,这样做时,我调用容器上的jQuerys remove方法 我在firebug中看到容器被销毁并从DOM中移除。但是,当我查看页面的源代码时,它仍然在那里 当我发布表单时,应该删除的字段仍在发布中 我想我可以手动将表单字段的名称更改为“hack”,但我是否遗漏了什么 这里有一个例子 <script language="javascript"> $(document).ready

这让我有点发疯

我有一个带有一组动态div的表单,每个div都填充了几个表单字段。用户可以删除其中一个div,这样做时,我调用容器上的jQuerys remove方法

我在firebug中看到容器被销毁并从DOM中移除。但是,当我查看页面的源代码时,它仍然在那里

当我发布表单时,应该删除的字段仍在发布中

我想我可以手动将表单字段的名称更改为“hack”,但我是否遗漏了什么

这里有一个例子

<script language="javascript">
$(document).ready( function(){
    $(".remove").live("click", function(){
       $(this).parents(".container").remove();
   });
});
</script>


<form>

<div class="container">
    <input type="text" name="name_1">
    <a href="" class="remove">Remove</a>
</div>

<div class="container">
    <input type="text" name="name_2">
    <a href="" class="remove">Remove</a>
</div>

<input type="submit">

</form>

$(文档).ready(函数(){
$(“.remove”).live(“单击”,函数(){
$(this.parents(“.container”).remove();
});
});
更改:

$(this).parents(".container").remove();
致:

看起来这就是你想做的。

这对我来说很有用:

返回false
在事件处理程序中,以便单击带有空href的链接不会重新加载当前页面

编辑:小提琴上的代码:

$(document).ready( function(){
    $(".remove").live("click", function(){
       $(this).parents("div.container").eq(0).remove();
        return false;
   });
});​

“当我查看页面的源代码时,它仍然在那里。”页面源代码没有显示DOM的当前状态,这就是为什么有一个名为firebug的插件。从jQuery 1.7开始
。live()
被降级。您应该在最新版本的jQueryI中使用
.on()
,我对此投了反对票,因为上面的代码确实有效。我看不出下面的答案是从哪里来的。我可能建议OP提供一个与他所遇到的问题相似的示例代码,你需要重新表述这个问题。您的问题似乎是表单正在发送您试图删除的值,而不是表单字段没有被删除。Rails有这个问题,但我知道不是在查看源代码时,它没有反映DOM。相反,我在一个div上调用remove(),它会消失在Chrome调试控制台中,但该div中的标记仍然存在!其他一切都消失了。我在jQuery文档中看不到任何关于这种行为的内容。这实际上删除了表单中该类的所有div。@JasonWells。我明白这就是你的意思,否则你为什么要使用父母。。。?你的问题很模糊。对不起,也许我不应该用父母。我想删除用户在其中单击删除的div。只是澄清一下,它是从DOM中删除的,我在firebug中看到了这一点,页面上的行为也完全正常。当我发布表单时,我仍然收到加载页面时存在的以前的值。我仍然认为可能是因为您使用的锚定标记没有任何href,在单击时加载相同的源。很抱歉,这是我的代码示例,在我实际的源代码中,href=”“存在。
$(document).ready( function(){
    $(".remove").live("click", function(){
       $(this).parents("div.container").eq(0).remove();
        return false;
   });
});​