jquery中动态生成的文本字段的不同名称

时间:2013-08-24 19:12:07

标签: javascript jquery

这是一个在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个新文本字段, 如何在keyup

上的每个文本字段中添加值

2 个答案:

答案 0 :(得分:3)

您在每次点击时覆盖num,并搞乱字符串表示法 将num声明置于回调之外:

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

当天的提示,在javascript中,您可以使用'"作为字符串符号,这两种情况都可以使用,并且您无需转义其他符号。

答案 1 :(得分:0)

您的代码中存在语法错误,您会混淆单引号和双引号...

应该是这样的

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

OR:

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