jquery可无限克隆添加文本框插件

所属分类: 网页特效-其它&杂项    2023-08-02 11:08:26

jquery可无限克隆添加文本框插件 ie兼容6
 查看演示  登录后下载 温馨提示
登录会员即可享受免费下载
 我要建站

jquery可无限克隆添加文本框插件(共3个文件)

    • jquery.simpleClone.js
    • jquery.simpleClone.min.js
    • index.html

使用方法

(function ($) {
	'use strict';

	$.fn.simpleClone = function (options) {
		const opts = $.extend({}, $.fn.simpleClone.defaults, options);
		const elems = this;

		return elems.each(function () {
			$(this).on('click', function (e) {
				e.preventDefault();

				const $self = $(this);
				const $wrap = $self.closest('.' + opts.addButtonWrapClass);
				const $targetWrap = $wrap.prev();
				const $targets = $targetWrap.find('.' + opts.targetClass);
				const $target = $targets.first();
				const count = $target.parent().children('.' + opts.targetClass).length + 1;

				if (opts.cloneLimit === false || (typeof opts.cloneLimit === 'number' && count <= opts.cloneLimit)) {
					let $clone = $target.clone(true);
					const rmvButton = document.createElement('button');
					rmvButton.type = 'button';
					rmvButton.className = opts.removeButtonClass === null ? $.fn.simpleClone.defaults.removeButtonClass : $.fn.simpleClone.defaults.removeButtonClass + ' ' + opts.removeButtonClass;
					rmvButton.innerText = opts.removeButtonText;

					$clone.append(rmvButton);

					$clone.find('select').each(function(index, item) {
						$(item).val($target.find('select').eq(index).val());
					});

					if (opts.copyValue === false) {
						$clone.find('input:not("input[type=radio], input[type=button], input[type=submit]"), textarea, select').each(function(index, item) {
							$(item).val('');
						});
					}

					if ($.isFunction(opts.filterCloneElement)) {
						$clone = opts.filterCloneElement.call(elems, $clone, opts);
					}

					if ($.isFunction(opts.onClone)) {
						opts.onClone.call(elems, $clone, opts);
					}

					$target.parent().append($clone);

					if ($.isFunction(opts.onComplete)) {
						opts.onComplete.call(elems, $clone, opts);
					}
				} else {
					const message = document.createElement('span');
					message.className = opts.limitMessageClass;
					message.innerText = opts.limitMessageText;

					if ($self.next('.' + opts.limitMessageClass).length === 0) {
						$self.after(message);

						setTimeout(function () {
							$self.next('.' + opts.limitMessageClass).fadeOut().remove();
						}, 4000);
					}
				}
			});

			$(document).on('click', '.' + $.fn.simpleClone.defaults.removeButtonClass, function (e) {
				e.preventDefault();

				const $self = $(this);

				if ($.isFunction(opts.onRemove)) {
					opts.onRemove.call(elems, opts);
				}

				$self.parent().remove();

				if ($.isFunction(opts.onCompleteRemove)) {
					opts.onCompleteRemove.call(elems, opts);
				}
			});
		});
	};

	$.fn.simpleClone.defaults = {
		copyValue         : true,
		cloneLimit        : false,
		limitMessageClass : 'simpleClone-clnLmt',
		limitMessageText  : 'Maximum count has been reached.',
		targetClass       : 'simpleClone-clnElem',
		addButtonWrapClass: 'simpleClone-btnWrap',
		removeButtonClass : 'simpleClone-rmvBtn',
		removeButtonText  : '移除',
		filterCloneElement: null,
		onClone           : null,
		onComplete        : null,
		onRemove          : null,
		onCompleteRemove  : null
	};
})(jQuery);

站长提示:
1. 苦力吧素材官方QQ群:950875342
2. 平台上所有素材资源,需注册登录会员方能正常下载。
3. 会员用户积极反馈网站、素材资源BUG或错误问题,每次奖励2K币
4. PHP源码类素材,如需协助安装调试,或你有二次开发需求,可联系苦力吧客服。
5. 付费素材资源,需充值后方能下载,如有任何疑问可直接联系苦力吧客服
相关资源 / 其它&杂项

jquery根据table表格数值大小设置单元格背景色插件

一款自定义table表格单元格颜色插件,根据每行table表格中最大值来计算每行的颜色。数值越大背景颜色越深,反之颜色越浅。
  其它&杂项
 1360  0

jquery可鼠标拖动的左右两侧边栏拆分器

一个支持鼠标拖动的拆分器插件,它将容器分为两部分,用户通过鼠标拖动来调整左/右侧边栏的大小。
  其它&杂项
 1229  0

jquery可根据背景色自动改变字体颜色特效代码

一款基于背景颜色自动改变字体亮度插件,使得在不同的背景颜色下字体能够清晰突出显示。
  其它&杂项
 6228  0

jquery轻量级字符串替换插件

一款文本文字字符串替换插件,使用普通字符替换大写重音的希腊字符。
  其它&杂项
 6252  0

评论数(0) 回复有机会获得K币 用户协议

^_^ 还没有人评论,快来抢个沙发!
😀
  • 😀
  • 😊
  • 😂
  • 😍
  • 😑
  • 😷
  • 😵
  • 😛
  • 😣
  • 😱
  • 😋
  • 😎
  • 😵
  • 😕
  • 😶
  • 😚
  • 😜
  • 😭
发表评论