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可拖拽触摸的DIV元素移动到另一个元素上触发事件代码

一款可拖动小部件插件,可通过鼠标拖动或触摸移动事件检测可拖动对象何时移动到另一个对象上。
  其它&杂项
 4835  0

jquery支持动态生成可编辑的table表格插件

一款实用的table表格操作插件,用于从包含表格数据的对象数组中动态生成可编辑、可克隆的HTML表。
  其它&杂项
 3590  0

js创建的视差堆叠卡片效果

一款滚动页面触发的堆叠卡片特效,使用CSS粘性位置和Intersection Observer创建堆叠卡片效果。
  其它&杂项
 81009  0

jquery浏览器网页全屏切换显示插件

一个浏览器轻量级全屏切换插件,用户在全屏模式下打开任何DIV元素,还支持嵌套iframe框架操作。 还提供了使用HTML5全屏API检查全屏状态和浏览器兼容性的功能。
  其它&杂项
 8611  0

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

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