【问题标题】:Javascript handling multiple checkboxesJavascript处理多个复选框
【发布时间】:2014-04-29 13:01:00
【问题描述】:

我正在制作一个带有提交表单的网页,您可以在其中提交多个时间段。在每个时期,您可以在单击复选框时添加额外的 cmets。这适用于 1 个时期,但是当我在 jQuery 中使用 .clone() 添加更多时期时,它会改变所有复选框。

我应该如何解决这个问题?

【问题讨论】:

  • 如果没有一些代码和一些标记,我们只能猜测您的问题的解决方案。你能提供一些吗?也许是一个 jsfiddle?
  • 显示您选择的 HTML 和您使用的 jQuery 选择器。
  • 给你 :) jsfiddle.net/P3URK

标签: jquery forms checkbox


【解决方案1】:

您在 javascript 代码中存在一些错误。 首先,您必须仅显示/隐藏该部分的文本框。为此,您可以使用 jQuery 的 closest()find() 方法。 其次,在检查选中的属性时,最好使用 jQuery 的 $(this) ,因为 javascript 的 this 在那里有所不同。 最后,在克隆元素时,如果你也想克隆元素的动作,你应该使用true参数。

工作代码是:

$( document ).ready(function() {
    $("#tijdstiptoevoegen").on( "click", function(e){
        e.preventDefault();
          $( ".tijdstip" ).clone(true).appendTo( ".tijdstippen" );
    });

    $(".chkUitleg").on("change",function() {
        if($(this).is(":checked")) {
        $(this).closest(".tijdstip").find(".verdere_uitleg").show();
    }
    else
    {
        $(this).closest(".tijdstip").find(".verdere_uitleg").hide();
    }
});
  });

【讨论】:

  • 但是当我第二次点击添加 tijdstip 时,我给了我 2 个 tijdstippen 而不是 1 个。
  • 如果找到解决方案。 var i = 0; var cloneid = $( '#tijdstip'+ i ); var prev = i; var previd = $( '#tijdstip'+ prev ); i = i + 1; $( previd ).clone(true).attr('id', 'tijdstip'+(i) ).find("input:text").val("").end().insertAfter( cloneid );
猜你喜欢
  • 1970-01-01
  • 2021-10-13
  • 1970-01-01
  • 1970-01-01
  • 2010-12-20
  • 2022-01-14
  • 2020-12-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多