2

这是一个在 html 中生成动态输入文本字段的 jquery。要为每个文本字段赋予不同的名称,'num' 会递增。我什至尝试“.attr('name', 'device' + num);”...但它不起作用。

$(document).ready(function() {
    $("#add").click(function() {
        var intId = $("#buildyourform div").length + 1;
        var num=0;
        num++;
        var fieldWrapper = $("<div class=\"fieldwrapper\" id=\"field" + intId + "\"/>");

**var fName = $("<input type=\"text\" class=\"fieldname\" name=\"' + num + '\" />");**

        var removeButton = $("<input type=\"button\" class=\"remove\" value=\"-\" />");
        removeButton.click(function() {
            $(this).parent().remove();
        });
        fieldWrapper.append(fName);

        fieldWrapper.append(removeButton);
        $("#buildyourform").append(fieldWrapper);
    });

});

如果现在生成 3 个新文本字段,我如何在每个文本字段 onkeyup 中添加值

4

2 回答 2

3

您在每次单击时都覆盖了num,并弄乱了字符串表示法。
num声明放在回调之外:

var num=0;
$("#add").click(function() {
    var intId = $("#buildyourform div").length + 1;
    num++;
    $('<input type="text" class="fieldname" name="' + num + '" />');

今日小贴士,在 javascript 中,您可以使用'字符串"表示法,您可以同时使用它们,并且您不需要转义其他表示法。

于 2013-08-24T19:14:20.727 回答
0

您的代码中存在语法错误,您将单引号和双引号弄乱了......

应该是这样的

var fName = $('<input type="text" class="fieldname" name="' + num + '" />');

或者:

var fName = $("<input type=\"text\" class=\"fieldname\" name=\"" + num + "\" />");
于 2013-08-24T19:23:09.337 回答