Jquery- 动态添加字段 - 防止删除最后一个项目
Jquery- Dynamic added fields - prevent the last Item to be removed
我有一个动态复制/删除的表单字段
在这里看小提琴:http://jsfiddle.net/obmerk99/y2d4c/6/
在此功能中,我还需要增加字段的 NAME(和 ID 等),如下所示:
o99_brsa_settings[brsa_dash_wdgt_content][0]
o99_brsa_settings[brsa_dash_wdgt_content][1]
o99_brsa_settings[brsa_dash_wdgt_content][2] ...
它正在工作,但问题是当我添加/删除字段时,当它到达最后一个(实际上是第一个)时,它会给我"未定义"并且不会再添加字段。
要查看问题,您需要"播放"一下添加/删除。
我相信主要问题是如果我们有 [0] 和 [0][2] 如何将所有这些保持在相同的数组级别
我离JS大师还很远,这段代码以某种方式是从各种来源组装的。但是我现在有点卡住了,所以任何帮助将不胜感激。
试试这个方式:
$(function () {
$(".addScnt").on("click", function () {
var i = checkNumberOfElements();
var scntDiv = $("div[id^='widget_dup']:last");
var prevDiv = scntDiv.clone();
var newname = $(prevDiv).find("textarea").attr("name").substring(0, $(prevDiv).find("textarea").attr('name').indexOf(']'));
prevDiv.find('textarea').attr('name', newname + "][" + i + "]");
prevDiv.find('textarea').attr('id', newname + "][" + i + "]");
prevDiv.find('label').attr('for', newname + "][" + i + "]");
prevDiv.attr('id', $(prevDiv).attr('id') + "_" + i);
$(scntDiv).after(prevDiv);
});
$(document).on("click", ".remScnt", function (event) {
var i = checkNumberOfElements();
if (i <= 1) {
return false;
} else {
var target = $(event.currentTarget);
target.parent("div").remove();
}
});
});
function checkNumberOfElements() {
// Number of textareas
var i = $("textarea[name^='o99_brsa_settings[brsa_dash_wdgt_content]']").length;
// Number of divs
// var i = $("div[id^='widget_dup']").length;
if (typeof i === undefined) {
return 0;
} else {
return i;
}
}
演示:http://jsfiddle.net/y2d4c/7/
相关文章:
- 从输入值中删除最后一个单词
- 如何使用JavaScript forloop从JSON中删除最后一个逗号
- 如何在单击时从输入字段中删除最后一个字符
- 正则表达式删除最后一个数字之后的字符串
- 从 Ol3 中的绘制交互中删除最后一个点
- 从路径中删除最后一个文件夹
- JavaScript-删除最后一个大写字母后的所有字符
- 从网址中删除最后一个参数
- Jquery- 动态添加字段 - 防止删除最后一个项目
- 从网址中删除最后一个元素
- 使用jQuery删除最后一个手风琴
- 如何从字符串中删除最后一个和第一个空格
- 从完整的HTML页面jQuery中删除最后一个表的方法
- 使用 Javascript 或 jQuery 删除最后一个字符
- 使用 jQuery 从字符串中删除最后一个逗号
- 删除最后一个元素时,jquery 会删除第一个元素
- 如何从字符串中删除最后一个“[]”
- 角度拼接功能总是删除最后一个元素
- Javascript-删除最后一个全局修饰符不起作用
- JS删除最后一个子项