A module to dynamically add drop-down selection boxes based on layui

不言
Release: 2023-04-03 22:02:02
Original
8005 people have browsed it

The content of this article is about the module for dynamically adding drop-down selection boxes based on layui. It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.

I just came into contact with layui this week and saw its modularity, so I started to make a select. I won’t say much about the practice of selecting and pulling. I will post the code below. Please point out any deficiencies.

/** * 基于layui扩展一个动态添加下拉选择框模块 */ layui.define(['form', 'jquery'], function(exports) { //提示:模块也可以依赖其它模块,如:layui.define('layer', callback); var form = layui.form; var jquery = layui.jquery; function selectDropDown() { /** * 生成uuid * @param {len} 长度 * @param {radix} 进制 如 2,10,16 */ this.uuid = function(len, radix) { var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split(''); var uuid = [], i; radix = radix || chars.length; if(len) { // Compact form for(i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]; } else { // rfc4122, version 4 form var r; // rfc4122 requires these characters uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'; uuid[14] = '4'; // Fill in random data. At i==19 set the high bits of clock sequence as // per rfc4122, sec. 4.1.5 for(i = 0; i < 36; i++) { if(!uuid[i]) { r = 0 | Math.random() * 16; uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]; } } } return uuid.join(''); } this.init = function(opts) { opts = jQuery.extend({ target: '', options: [], onSelect:function(){} }, opts || {}); var uuid = this.uuid(8, 16); var target = jquery(opts.target); target.addClass('layui-form'); target.attr('lay-filter', "select"+uuid); var original = target.attr('data-original'); var currentValue = target.attr('data-value'); var domSelect = jquery('