javascript - 如何在多次克隆表单时使用 javascript 或 jquery 自动滚动到焦点输入字段分区

标签 javascript jquery html django-forms

自动滚动到焦点输入字段表单分区。 我正在克隆表单以立即添加更多用户。 因此,当我单击添加按钮时,它必须向下滚动到输入字段

HTML:

    $(document).ready(function() {
        $('#id_i_fa_add').click(function duplicate() {
            $('#id_i_fa_add').off('click');
            $('.fa.fa-trash').off('click');
            var original = document.getElementById('id_div_add' + i);
            var clone = original.cloneNode(true);
            $('#' + clone.id + " a i").attr('class', 'fa fa-trash');
            $('#' + clone.id + " a i").attr('id', 'id_i_fa_del' + i);
            clone.id = "id_div_add" + ++i;
            clone.querySelectorAll("[id = 'id_span_error_email" + (i - 1) + "']")[0].id = 'id_span_error_email' + i;
            $(clone).find('input').val("");
            $(clone).find('span').text("");
            document.getElementById('id_form_append').appendChild(clone);
            $('#id_form_append input').focus();

            $('#id_i_fa_add').on('click', duplicate);
            $('.fa.fa-trash').on('click', duplicate_trash);
        });
    });

    function duplicate_trash() {
        var trash_id = this.id;
        var parent_trash_id = $('#' + trash_id).parents().eq(1).attr('id');
        $('#' + parent_trash_id).remove()
    }
        <form id='id_form_append' action="#">
            <div id='id_div_append'>
                <div id='id_div_add0' class="panel_box">
                    <div class="form_group">
                        <label>Email Address</label>
                        <div class="form-group form-inline">
                            <div class="input-group" style="width: 100%;">
                              <input name="email" type="text" class="form-control" placeholder="e-mail" autofocus>
                              <div class="input-group-addon">domains</div>
                            </div>
                         </div>
                        <span id='id_span_error_email0' class='class_span0'></span>
                    </div>
                    <a class="action" href="#">
                        <i id='id_i_fa_add' class="fa fa-plus"></i>
                    </a>

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

最佳答案

您可以使用以下方式滚动到某个位置:

$(window).scrollTop(/* pixel count */)

要检索任何元素的位置,请使用:

$(/* selector */).position()

然后您将获得一个包含所选元素位置的简单对象。要检索顶部的像素,请使用:

$(/* selector */).position().top

注意:只有当您的选择器恰好选择一个元素时,此方法才能正常工作。

关于javascript - 如何在多次克隆表单时使用 javascript 或 jquery 自动滚动到焦点输入字段分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33450340/

相关文章:

javascript - 插件JavaScript的错误处理机制

javascript - 无法在 Angular JS 中获取正确的数据

javascript - 为什么我不能通过在 jquery 中将图像引用为它们父 div 的子元素来修改图像的属性

javascript - jQuery 按类过滤 div

javascript - Twitter Bootstrap : modal window not playing video after reopning the modal window

html - slider 无法正常工作

javascript - React-query 返回无法读取未定义的属性,即使我可以看到 id 已设置

javascript - 是否可以从 iframe 中单击的链接获取 url?

javascript - 查找 child 的序列号

javascript - $.get 不是函数