javascript - 使用 data-clear-btn ="true"克隆 jquery 移动输入字段

标签 javascript jquery jquery-mobile dynamic-forms

我尝试使用 jquery 和 jquery mobile 制作动态表单。创建或删除输入字段,以便始终留下一个空输入字段。

这是我实现此目的的 jquery 代码(在这里尝试: http://jsfiddle.net/SR864/17/ ):

$(document).ready(function() {
    var total = 1;
    // add new field
    $("#bar").on("input", ".input", function() {
        // add new field
        if ($(".input").last().val() != "") {
            var newFields = $(this).closest("p").clone();

            newFields.find(":input").each(function() {
                var name = $(this).attr('name').replace('-' + (total - 1), '-' + total);
                var id = 'id_' + name;
                $(this).attr({'name': name, 'id': id}).val('');

                total++;
            });
            $(this).closest("p").after(newFields);
        }
    });
    $("#bar").on("input", ".input", function() {
        // remove empty field
        if ($(this).val() == "") {
            $(this).closest("p").remove();
        }
    });
});

我还希望在输入字段内有“删除按钮”以从输入字段中删除文本。 jquery mobile 为此提供了 data-clear-btn="true"。然而,不知何故 data-clear-btn="true" 的行为仅适用于第一个输入字段 - 新的(克隆的)输入字段没有清除按钮。

问题
如何为克隆的输入字段设置清除按钮?

奖励问题
按下清除按钮后输入字段为空时,需要删除哪些输入字段?

最佳答案

jQM 将 input 字段包装在一个 div ui-input-text 中。您需要克隆 input 本身 - 而不是包装 div - 更改其“idnameval() ...ETC。然后将它添加到 form 并使用 .textinput() 函数增强它。

此外,您应该将代码包装在 pagecreate 事件中。

$(document).on("pagecreate", function () {
    var counter = 0;
    $("#bar").on("input", function (e) {
        if ($(e.target).val().length === 1) { /* after 2 characters add a new input */
            counter++;
            var id = "input-" + counter;
            var input = $(e.target).clone().prop({
                id: id,
                name: id
            }).val("");
            $(e.target).closest(".ui-input-text").after(input);
            $("#" + id).textinput();
        }
    });
});

Demo

关于javascript - 使用 data-clear-btn ="true"克隆 jquery 移动输入字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22741953/

相关文章:

javascript - Angular-google-maps 折线路径

javascript - FROM 输入类型 ="date"值 TO Php 变量

javascript - 带有 CSS 推子的 ng-show 不工作

jquery下拉菜单定位

java - 创建对象以获取预期的 Json

css - 如何从接收焦点的 jQuery Mobile 输入元素中移除蓝色光晕

javascript - 如何在 JW Player 中显示带有播放列表的 "Previous"按钮?

javascript - JS、jQuery 冲突..有帮助吗?

android - 如何获取选定的索引 JQuery Mobile Listview

javascript - JQueryMobile - AJAX - JSON 解析