【问题标题】:Dynamically adding contents inside Jquery ui accordion doset work在 Jquery ui 手风琴 doset 工作中动态添加内容
【发布时间】:2021-12-16 18:39:00
【问题描述】:

所以我有这个手风琴代码,它有三个输入字段和两个按钮

<div id="accordion">
  <h3>External Attendees</h3>
  <div>

    <div class="invitediv">
      <div class="form-row  invitepeople">

        <div class="col-3">

          <input type="text" class="form-control inmail" placeholder="Email" />
        </div>

        <div class="col-3">

          <input type="text" class="form-control inname" id="extname" placeholder="Name" />

        </div>
        <div class="col-3">

          <input type="text" class="form-control incnt" placeholder="Mobile No" />

        </div>
        <div class="col-1">
          <input type="button" id="reminvt" onclick="removeDiv(this);" class="btn btn-danger reminvt" value="-" />

        </div>

        <div class="col-1">
          <input type="button" id="addinvt" class="btn btn-success" value="+" />

        </div>
      </div>

    </div>

  </div>
</div>

点击这个按钮调用这个方法

$("#addinvt").on("click", function (e) {
  debugger;

  e.preventDefault();
  var data =
    '</br> <div class="form-row  invitepeople" >' +
    '  <div class="col-3">' +
    ' <input type="text" class="form-control inmail" placeholder="Email" />' +
    " </div>" +
    '<div class="col-3">' +
    ' <input type="text" class="form-control inname" id="extname" placeholder="Name" />' +
    " </div>" +
    '<div class="col-3">' +
    '<input type="text" class="form-control incnt" placeholder="Mobile No" />' +
    "</div>" +
    '<div class="col-1">' +
    ' <input type="button" id="reminvt" onclick="removeDiv(this);" class="btn btn-danger reminvt" value="-" />' +
    "</div>" +
    '<div class="col-1">' +
    '<input type="button" id="addinvt" class="btn btn-success" value="+" />' +
    "</div>" +
    "</div>";
  $(".invitediv").append(data);
});

并将 HTML 附加到手风琴内的 div 中,所以我的问题是 + 按钮仅适用于手风琴内已经存在的元素,我可以使用它添加新的输入,但新的 + 按钮添加的元素不起作用,这里发生了什么?谁能解释一下?

【问题讨论】:

  • 当您添加 html(来自数据)时,您会得到重复的行,这通常很糟糕。喜欢addinvt
  • 我知道这是一种不好的做法,但我使用的应用程序需要这样做,因此客户可以根据需要添加任意数量的姓名和邮件,并且在手风琴中添加输入之前一切正常,做你知道为什么会这样吗?

标签: javascript jquery asp.net-mvc jquery-ui jquery-ui-accordion


【解决方案1】:

尝试为每个按钮提供一个唯一的 id,我在这里通过这样做 &lt;input type="button" id="addinvt" class="btn btn-success" onclick="addDiv(this);" value="+" /&gt;

这里,var elemtnCount = document.querySelectorAll('.invitepeople').length; 首先我检查了您已有多少元素,然后将其递增以生成新键,然后将其与 ID 属性一起添加以生成唯一 ID。

并为每个 add(+) 按钮单击使用一个函数。因此,您的按钮将是独一无二的,并且每次点击都会添加按钮。

注意:这里我只对添加按钮进行了更改,对删除(-)按钮进行了相同的更改。

function addDiv(e) {
            debugger;
var elemtnCount = document.querySelectorAll('.invitepeople').length;

var newElemCount = elemtnCount + 1;
           
            var data ='</br> <div class="form-row  invitepeople" >'+

              '  <div class="col-3">'+

                   ' <input type="text" class="form-control inmail" placeholder="Email" />'+
               ' </div>'+

                '<div class="col-3">'+

                   ' <input type="text" class="form-control inname" id="extname" placeholder="Name" />'+

               ' </div>'+
                '<div class="col-3">'+

                    '<input type="text" class="form-control incnt" placeholder="Mobile No" />'+

                '</div>'+
                '<div class="col-1">'+
                   ' <input type="button" id="reminvt" onclick="removeDiv(this);" class="btn btn-danger reminvt" value="-" />'+

                '</div>'+

                '<div class="col-1">'+
                    '<input type="button" id="addinvt'+(newElemCount)+' " class="btn btn-success" onclick="addDiv(this);" value="+" />'+

                '</div>'+
            '</div>'
            $(".invitediv").append(data);

        };
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="accordion">
                <h3>External Attendees</h3>
                <div>

                    <div class="invitediv">
                        <div class="form-row  invitepeople">

                            <div class="col-3">

                                <input type="text" class="form-control inmail" placeholder="Email" />
                            </div>

                            <div class="col-3">

                                <input type="text" class="form-control inname" id="extname" placeholder="Name" />

                            </div>
                            <div class="col-3">

                                <input type="text" class="form-control incnt" placeholder="Mobile No" />

                            </div>
                            <div class="col-1">
                                <input type="button" id="reminvt" onclick="removeDiv(this);" class="btn btn-danger reminvt" value="-" />

                            </div>

                            <div class="col-1">
                                <input type="button" id="addinvt" class="btn btn-success" onclick="addDiv(this);" value="+" />

                            </div>
                        </div>

                    </div>

                </div>
</div>

【讨论】:

  • 删除按钮由于某种原因工作正常,leeme check add button with your code
  • 不,不幸的是你的方法也不起作用
  • 我可以知道它在哪里给你一个错误吗?它在我在这里提供的 sn-p 中工作吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多