简体   繁体   English

需要附加html元素作为用户继续单击带有jquery的按钮

[英]Need to append html element as user keep clicking a button with jquery

I am trying to append a div multiple times when clicking a button, the problem is that is only appending once. 我试图在单击按钮时多次追加div,问题是只追加一次。 I need to append same div as user keeps clicking. 我需要在用户不断点击时附加相同的div。

  • DIV I need to append multiple times is stored in a variable named $htmlDivForm in the jquery code. DIV我需要多次追加存储在jquery代码中名为$htmlDivForm的变量中。
  • I'm using bootstrap. 我正在使用bootstrap。

HTML code: HTML代码:

<div class="container">
    <div class="row">

        <div class="col-md-3">
            <form id="formUser" action="index.html" method="post">
                <div class="text-center">
                    <button id="moreFieldsBtn" class="btn" type="button" name="button">+</button>
                </div>
            </form>
        </div>

        <div class="col-md-9">
            More Content...
        </div>

    </div>
</div>

jquery code: jquery代码:

var $moreFieldsBtn = $("#moreFieldsBtn");
var $formUser = $("#formUser");
var $htmlDivForm = $('<div class="form-group"><label class="labelName" for="inputText">Nombre</label><input class="form-control inputTextField" type="text" name="inputText" value=""></div>');


//Add input text field
$($moreFieldsBtn).click (function() {
    $($formUser).append($htmlDivForm);
});

You can't append the same div multiple times, you need to instantiate new divs and attach those. 你不能多次附加相同的div,你需要实例化新的div并附加它们。 You also don't need to re-wrap the jQuery objects to attach the handlers: 您也不需要重新包装jQuery对象来附加处理程序:

var $moreFieldsBtn = $("#moreFieldsBtn");
var $formUser = $("#formUser");

//Add input text field
$moreFieldsBtn.click(function() {
    var $htmlDivForm = $('<div class="form-group"><label class="labelName" for="inputText">Nombre</label><input class="form-control inputTextField" type="text" name="inputText" value=""></div>');
    $formUser.append($htmlDivForm);
});
I had gone through your question.

I have Updated the example.

Removed the Object and just inserting plain HTML

 var $moreFieldsBtn = $("#moreFieldsBtn"); var $formUser = $("#formUser"); var $htmlDivForm = $('<div class="form-group"><label class="labelName" for="inputText">Nombre</label><input class="form-control inputTextField" type="text" name="inputText" value=""></div>'); var htmltext = '<div class="form-group"><label class="labelName" for="inputText">Nombre</label><input class="form-control inputTextField" type="text" name="inputText" value=""></div>' //Add input text field $($moreFieldsBtn).click (function() { $($formUser).append(htmltext); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="container"> <div class="row"> <div class="col-md-3"> <form id="formUser" action="index.html" method="post"> <div class="text-center"> <button id="moreFieldsBtn" class="btn" type="button" name="button">+</button> </div> </form> </div> <div class="col-md-9"> More Content... </div> </div> </div> <div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM