如何在jQuery中动态添加表单元素?

马哈茂德·霍斯拉维(Mahmoud Khosravi)

我正在尝试使用少量的javascript在rails中创建动态表单我有一个问题,使用pry时我在输出中仅得到一行,这显然是因为自从我使用jQuery .clone以来,每个字段输入都具有相同的参数,也许有人为类似的事情而苦苦挣扎,可以分享一些知识,如何使用javascript以这种形式将索引动态添加到参数中?

@extends('Admin.master')

@section('content')

    <div class="p-5">
        <h3><i class="fas fa-cog ml-2"></i>Setting</h3><hr>
        <form action="{{ route('settings.update', $setting->id) }}" method="POST" >
            @csrf
            @method('PUT')
            <div id="showDynamic">

            </div>
        </form>
    </div>

@endsection

@section('script')
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

    <script>
        $(document).ready(function(){
            let count = 1;
            $('.add').click(function(){
                count++;
                dynamic(count);
            });
            dynamic(count);
            function dynamic(number) {
                var html = '' +
                    '<div class="row">\n' +
                    '<div class="col-md-4">\n' +
                    '<input class="form-control" placeholder="Name">\n' +
                    '</div>\n' +
                    '<div class="col-md-4">\n' +
                    '<input class="form-control" placeholder="Link">\n' +
                    '</div>\n' +
                    '<div class="col-md-2">\n' +
                    '<a class="btn btn-primary" id="add">Add</a>\n' +
                    '<a class="btn btn-danger" id="delete">Delete</a>\n' +
                    '</div>\n' +
                    '</div>';
                $('#showDynamic').append(html);
            }
        });
    </script>
@endsection
穆罕默德·优素福
  • 第一个ID必须是唯一的..所以更改id="add"id="delete"class="btn btn-primary add"

  • 将ID更改为类使用后,在动态创建的元素上进行第二次事件绑定$(document).on('click' , '.add' , function(){ //code here })

您的代码应为

<script>
        $(document).ready(function(){
            let count = 1;
            $(document).on('click' , '.add' , function(){
                count++;
                dynamic(count);
            });
            dynamic(count);
            function dynamic(number) {
                var html = '' +
                    '<div class="row">\n' +
                    '<div class="col-md-4">\n' +
                    '<input class="form-control" placeholder="Name">\n' +
                    '</div>\n' +
                    '<div class="col-md-4">\n' +
                    '<input class="form-control" placeholder="Link">\n' +
                    '</div>\n' +
                    '<div class="col-md-2">\n' +
                    '<a class="btn btn-primary add">Add</a>\n' +
                    '<a class="btn btn-danger delete">Delete</a>\n' +
                    '</div>\n' +
                    '</div>';
                $('#showDynamic').append(html);
            }
        });
    </script>

$(document).ready(function(){
    let count = 1;
    $(document).on('click' , '.add' , function(){
        count++;
        dynamic(count);
    });
    dynamic(count);
    function dynamic(number) {
        var html = '' +
            '<div class="row">\n' +
            '<div class="col-md-4">\n' +
            '<input class="form-control" placeholder="Name">\n' +
            '</div>\n' +
            '<div class="col-md-4">\n' +
            '<input class="form-control" placeholder="Link">\n' +
            '</div>\n' +
            '<div class="col-md-2">\n' +
            '<a class="btn btn-primary add">Add</a>\n' +
            '<a class="btn btn-danger delete">Delete</a>\n' +
            '</div>\n' +
            '</div>';
        $('#showDynamic').append(html);
    }
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="showDynamic"></div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章