这是一个在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
上的每个文本字段中添加值答案 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 + "\" />");