binder_binder机制 - CSDN
binder 订阅
BINDER致力于为都市男性打造一系列商务休闲皮具,无论大学生、白领,还是主管都必须的上品皮具。融汇商务皮具与休闲包理念,打破了以正装皮具为主的局面;并以互联网直销依托“大牌品质、低廉价格和完美售后”拉近受众群的距离。当下都市男性在严谨的工作和快节奏的生活氛围中,更加注重休闲、舒适、随意的生活品味。 展开全文
BINDER致力于为都市男性打造一系列商务休闲皮具,无论大学生、白领,还是主管都必须的上品皮具。融汇商务皮具与休闲包理念,打破了以正装皮具为主的局面;并以互联网直销依托“大牌品质、低廉价格和完美售后”拉近受众群的距离。当下都市男性在严谨的工作和快节奏的生活氛围中,更加注重休闲、舒适、随意的生活品味。
信息
品牌文化
品牌树形象,品质得人心
主要产品
服装、皮具、皮鞋等
品牌创立
男性把皮具当成一种品味风格
外文名
BINDER
BINDER品牌创立
当今,男性已经把皮具当成是生活中的点缀品,它代表的是一种品味,一种风格。BINDER为此而来。在国外男士皮具已经超脱了消费品的简单意义,如同女人的香水,携带的是一种文化,传达的是一种生活方式。
收起全文
精华内容
参与话题
  • 使用bootstrap-fileinput进行文件上传,bootstrap提供了吩咐的API属性、方法、事件;控制文件上传每一个环境,提供各个部分的`class`。 Java上传图片处理以及nodeJS上传文件处理。

    使用bootstrap-fileinput进行文件上传,有丰富的属性、方法、事件,还有好多demo供参考。

    前端处理

    直接上代码,简单明了。

    	<div class="col-md-9 input-group">
      		<input type="file" name="file"  id="imgUpload" class="imgFile form-control">
      	</div>
    

    这是原始的HTML文件上传时的设置;然后使用bootstrap-fileinput渲染它。

    $("#imgUpload")
          .fileinput({
            language: "zh", //设置语言
            uploadUrl: url + "/upload/addImg", //上传的地址
            allowedFileExtensions: ["jpg", "png", "jpeg", "bmp"], //接收的文件后缀
            theme: "fa",      // 主题设置
            initialPreview: url1 + filePath + fileName,        // 初始预览区域显示的图片
            initialPreviewAsData: true,
            initialPreviewConfig: [
              { type: "image", fileType: "image", caption: fileName }
            ],
            dropZoneEnabled: false,          // 禁止点击预览区域进行文件上传操作
            maxFileCount: 1,                    // 最大上传为 1
            showUpload: false,             // 不显示上传按钮,选择后直接上传
            previewClass:"uploadPreview",
          })
          .on("change", function() {               
            // 清除掉上次上传的图片
            $(".uploadPreview").find(".file-preview-frame:first").remove();
    		$(".uploadPreview").find(".kv-zoom-cache:first").remove();
          })
          .on("filebatchselected", function(e, files) {        
            $(this).fileinput("upload");             // 文件选择完直接调用上传方法。
          })
          .on("fileuploaded", function(e, data, previewiId, index) {       // 上传完成后的处理
            var form = data.form,
              files = data.files,
              extra = data.extra,
              response = data.response,        // 响应
              reader = data.reader;          // 文件对象
            if (response.flag) {
              let img = new Image();     // 这里上传的是图片,对图片处理获取图片的分辨率
              img.src = reader.result;
              if (img.complete) {
                $(this).attr("data-displayReso", img.width + "*" + img.height);
              } else {
                img.onload = function() {
                  $(this).attr("data-displayReso", img.width + "*" + img.height);
                };
              }
            }
          });
    

    注意
    手动调用上传upload方法后,相关的一些事件则不生效。

    1. 进行多文件上传,<input type="file" name="file" id="imgUpload" class="imgFile form-control" multiple> ,设置属性maxFileCount 文件的最大数量。
    2. 进行单文件上传时,上传后再次选择文件上传,之前上传的还在,需要在change事件中手动清除之前的图片占位。设置属性previewClass
    java 处理文件接收
    @RequestMapping(value="/addImg",method={RequestMethod.POST})
    @ResponseBody
    public Map<String,Object> addImg(HttpServletRequest request, HttpServletResponse response){
    	Map<String,Object> result= new HashMap<String, Object>();
    	
    	// 转型为MultipartHttpRequest:
    	MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
    	// 获得文件:
    	MultipartFile file= multipartRequest.getFile("file");
    	try(){
    		if(!(imgFile.getOriginalFilename() == null || "".equals(imgFile.getOriginalFilename()))){
    			String imgDir = "E:\\images";        // 图片上传地址
    			// 对文件进行存储处理
    			byte[] bytes = file.getBytes();
                Path path = Paths.get(imgDir,"\\"+file.getOriginalFilename());
                Files.write(path,bytes);
    
                result.put("msg","上传成功!");
                result.put("result",true);
    		}
    	}catch(IOException e){
                result.put("msg","出错了");
                result.put("result",false);
                e.printStackTrace();
            }catch (Exception e1){
                e1.printStackTrace();
            }
    	return result;
    }
    	
    

    划重点
    MultipartFile imgFile = multipartRequest.getFile("file");这里的file 指的是前端input标签中的name属性.之前没注意到导致前台上传文件时报500错误。

    multipartRequest属性对象

    nodeJS处理文件上传

    使用express框架搭建服务,使用formidable模块处理文件,要使用到NodeAPIfs文件系统和path路径。

    app.post("/upload/addImg", function (req, res) {
    	var form = new formidable.IncomingForm();
    	form.encoding = 'utf-8';
    	form.uploadDir = path.join(__dirname, 'tmp');       // 临时文件存储地址,之后进行重命名移动
    	form.keepExtensions = true; // 文件扩展名
    
    	form.parse(req, function (err, fields, files) {
    		var filepath = '';
    		for (var key in files) {
    			if (files[key].path && filepath == '') {
    				filepath = files[key].path;        // 获取到临时存放的文件地址
    				break;
    			}
    		}
    		var targetDir = path.join(__dirname, "/upload/imgs/");
    		// 创建存放文件的目录
    		if (fs.existsSync(targetDir)) {
    			fs.mkdir(targetDir, {
    				recursive: true
    			}, (err) => {
    				if (err) throw err;
    			});
    		}
    		var fileExt = filepath.substring(filepath.lastIndexOf("."));
    		// 文件类型校验
    		if ((".jpg.png.bmp.jpeg").indexOf(fileExt.toLowerCase()) == -1) {
    			var errType = new Error("此文件类型不支持!");
    			res.json({
    				code: -1,
    				message: errType
    			});
    		} else {
    			var filename = new Date().getTime() + fileExt;
    			var targetFile = path.join(targetDir, filename);
    			fs.rename(filepath, targetFile, err => {
    				if (err) {
    					console.info(err);
    					res.json({
    						code: -1,
    						message: "操作失败"
    					});
    				} else {
    					// 上传成功后处理返回文件的地址
    					var fileUrl = Path.join(__dirname, '/upload/imgs/' + filename);
    					res.json({
    						code: 200,
    						fileUrl: fileUrl
    					});
    				}
    			});
    		}
    	});
     });
    

    注意
    文件创建目录会出错,Error: ENOENT: no such file or directory,最好手动在指定路径下创建好存放的地址。

    // 创建存放文件的目录
    if (fs.existsSync(targetDir)) {
    			fs.mkdir(targetDir, {
    				recursive: true
    			}, (err) => {
    				if (err) throw err;
    			});
    		}
    

    files文件对象:
    files对象


    2019-02-28 更新:补全Java存储路径部分代码

    1. 补全代码查看Java处理文件代码部分。

    2. 上传处理成功后,返回给前端结果时附带图片信息

       File file1=new File(path.toString());
       InputStream ins = new FileInputStream(file1);
       // 返回图片的地址,宽、高
       BufferedImage bufferedImage = ImageIO.read(ins);
       extData.put("imgUrl", path.toString());
       extData.put("imgW",bufferedImage.getWidth());
       extData.put("imgH",bufferedImage.getHeight());
       
       ins.close();
       ins=null;
       BufferedImage=null;
      

    在使用form表单上传文件时,注意属性enctype="multipart/form-data"

    展开全文
  • <p>I have this Bootstrap from model, and I do not know why the <strong>submit</strong> button does not sent the file, it sent nothing. <pre><code><form action="myPage....
  • Bootstrap File Input,最好用的文件上传组件

    万次阅读 多人点赞 2016-01-29 16:33:22
    本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存。

    本篇介绍如何使用 Bootstrap File Input(最好用的文件上传组件)来进行图片的展示、上传,以及如何在服务器端进行文件保存。

    一、先来看效果图吧

    这里写图片描述

    这里写图片描述
    这里写图片描述

    二、引入插件的样式和脚本

    <link type="text/css" rel="stylesheet" href="${ctx}/components/fileinput/css/fileinput.css" />
    <script type="text/javascript" src="${ctx}/components/fileinput/js/fileinput.js"></script>
    <script type="text/javascript" src="${ctx}/components/fileinput/js/fileinput_locale_zh.js"></script>
    

    http://plugins.krajee.com/file-input,这是其官方文档,里面有下载地址。

    三、在页面上添加组件

    <input type="file" name="image" class="projectfile" value="${deal.image}"/>
    
    1. type=file和class=projectfile,指明其为input file类型。
    2. name指定其在后台的获取key。
    3. value指定其在展示的时候图片路径。

    四、初始化

    projectfileoptions : {
    		showUpload : false,
    		showRemove : false,
    		language : 'zh',
    		allowedPreviewTypes : [ 'image' ],
    		allowedFileExtensions : [ 'jpg', 'png', 'gif' ],
    		maxFileSize : 2000,
    	},
    // 文件上传框
    $('input[class=projectfile]').each(function() {
    	var imageurl = $(this).attr("value");
    
    	if (imageurl) {
    		var op = $.extend({
    			initialPreview : [ // 预览图片的设置
    			"<img src='" + imageurl + "' class='file-preview-image'>", ]
    		}, projectfileoptions);
    
    		$(this).fileinput(op);
    	} else {
    		$(this).fileinput(projectfileoptions);
    	}
    });
    
    1. 通过jquery获取对应的input file,然后执行fileinput方法。
    2. showUpload 设置是否有上传按钮。
    3. language指定汉化
      4. allowedFileTypes 、allowedFileExtensions 不知道为什么没有起到效果?
    4. maxFileSize 指定上传文件大小

    五、带file文件的form表单通过ajax提交

    我们先来看带file的form表单布局。

    <form class="form-horizontal required-validate" action="${ctx}/save?callbackType=confirmTimeoutForward" enctype="multipart/form-data" method="post" οnsubmit="return iframeCallback(this, pageAjaxDone)">
    
    	<div class="form-group">
    		<label for="" class="col-md-1 control-label">项目封面</label>
    		<div class="col-md-10 tl th">
    			<input type="file" name="image" class="projectfile" value="${deal.image}" />
    			<p class="help-block">支持jpg、jpeg、png、gif格式,大小不超过2.0M</p>
    		</div>
    	</div>	
    	<div class="form-group text-center ">
    		<div class="col-md-10 col-md-offset-1">
    			<button type="submit" class="btn btn-primary btn-lg">保存</button>
    		</div>
    	</div>
    </form>				
    
    1. enctype="multipart/form-data"必不可少。
    2. οnsubmit="return iframeCallback(this, pageAjaxDone)"方法,通过ajax提交表单(iframeCallback),并且上传成功后调用回调函数(pageAjaxDone)进行下一步操作。

    关于iframeCallback的介绍,请参照 summernote所在form表单的数据提交,这里就不多做介绍了。

    然后我们来介绍一下回调函数pageAjaxDone。

    function pageAjaxDone(json) {
    	YUNM.debug(json);
    	YUNM.ajaxDone(json);
    
    	if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok) {
    		var msg = json[YUNM.keys.message];
    		// 弹出消息提示
    		YUNM.debug(msg);
    
    		if (YUNM.callbackType.confirmTimeoutForward == json.callbackType) {
    			$.showSuccessTimeout(msg, function() {
    				window.location = json.forwardUrl;
    			});
    		}
    	}
    }
    

    其主要的功能就是通过ajaxDone方法处理服务端传递过来的错误消息,假如说服务端操作成功,那么会显示提示信息,进而跳转到对应的url。

    六、服务器端保存图片

    请参照后端springMVC文件保存


    ps:以上博客留了一个小疑问,一直没有去研究,直到有位非常棒的小伙伴 ihchenchen 给了我如下的提醒:

    allowedFileTypes 、allowedFileExtensions 我知道为什么没有效果,因为 fileinput() 方法调用了两次,一次在 fileinput.js 里面最后几行,还有一次就是你自己写的 $(this).fileinput()。在fileinput.js里的是没有设置allowedFileTypes 、allowedFileExtensions 值的。

    有两种方法可以改:
    1、把fileinput.js里的最后几行调用注释掉。
    2、全部使用“data-”的方法来做,不写$(this).fileinput()。

    对于ihchenchen善意的提醒,我非常的感谢,虽然他提供的解释并没有解决我的疑问,但是我很喜欢这样有互动的技术交流,之前写很多博客,基本上很少发生这样善意并且行之有效的回答。这让我想起中国程序员和外国程序员,里面的故事让人震撼之余,捎带着些许的惭愧。那么如何做到“Ask questions, get answers, no distractions。”就显得特别珍贵,而“ihchenchen”则充满这种精神!

    六、解惑allowedFileTypes 、allowedFileExtensions

    之前困惑为什么bootstrap fileinput为什么设置了这两个属性后,没有效果,其实是我自己的误解,如今经过一番痛彻的领悟后恍然大悟!

    ①、allowedFileTypes

    allowedFileTypes
    array the list of allowed file types for upload. This by default is set to null which means the plugin supports all file types for upload. If an invalid file type is found, then a validation error message as set in msgInvalidFileType will be raised. The following types as set in fileTypeSettings are available for setup.

    [‘image’, ‘html’, ‘text’, ‘video’, ‘audio’, ‘flash’, ‘object’]

    先从“allowedFileTypes”说起,该属性告知我们文件的选择类型,那么我们很容易想到这样的画面:
    这里写图片描述

    也就是说,我们希望此时的“所有文件”处不是“所有文件”,而是“image”之类的。显然这样的逻辑并没有错,但却不适合bootstrap fileinput!

    那么,这个时候我就很容易认为“allowedFileTypes” 没有起到作用!

    但请看下图:
    这里写图片描述

    吼吼,原来是在你选择了文件后发生的类型检查!

    ②、allowedFileTypes工作原理

    			$(this).fileinput({
    				showUpload : false,
    				showRemove : false,
    				language : 'zh',
    				allowedPreviewTypes: ['image'],
    		        allowedFileTypes: ['image'],
    		        allowedFileExtensions:  ['jpg', 'png'],
    				maxFileSize : 2000,
    				
    			});
    

    通过fileinput方法我们加载一个bootstrap fileinput组件,那么其内部是如何实现allowedFileTypes的呢?

    通过在fileinput.js文件中搜索“allowedFileTypes”关键字,我们得到如下代码:

     var node = ctr + i, previewId = previewInitId + "-" + node, isText, file = files[i],
                        caption = self.slug(file.name), fileSize = (file.size || 0) / 1000, checkFile, fileExtExpr = '',
                        previewData = objUrl.createObjectURL(file), fileCount = 0, j, msg, typ, chk,
                        fileTypes = self.allowedFileTypes, strTypes = isEmpty(fileTypes) ? '' : fileTypes.join(', '),
                        fileExt = self.allowedFileExtensions, strExt = isEmpty(fileExt) ? '' : fileExt.join(', ');
    

    然后我们继续看到如下的代码:

     if (!isEmpty(fileTypes) && isArray(fileTypes)) {
                        for (j = 0; j < fileTypes.length; j += 1) {
                            typ = fileTypes[j];
                            checkFile = settings[typ];
                            chk = (checkFile !== undefined && checkFile(file.type, caption));
                            fileCount += isEmpty(chk) ? 0 : chk.length;
                        }
                        if (fileCount === 0) {
                            msg = self.msgInvalidFileType.replace('{name}', caption).replace('{types}', strTypes);
                            self.isError = throwError(msg, file, previewId, i);
                            return;
                        }
                    }
    

    我们可以发现,文件类型的检查是发生在checkFile方法上,那么checkFile方法到底做了些什么呢?

     defaultFileTypeSettings = {
            image: function (vType, vName) {
                return (vType !== undefined) ? vType.match('image.*') : vName.match(/\.(png|jpe?g)$/i);
            },
            ...
    

    以上就是checkFile的内容。

    1. 也就是说当我们指定allowedFileTypes: ['image'],时,就会进行image的类型检查。
    2. 显然我们选择的txt文件不属于image类型,那么就会匹配不上,出现以上界面。
    3. 同时,该方法告诉我们,当不指定allowedFileTypes: ['image'],,只指定allowedFileExtensions: ['jpg', 'png'],就会执行vName.match(/\.(png|jpe?g)$/i),也就是文件后缀类型的检查,这点很关键啊,为我们接下来介绍“allowedFileExtensions”奠定基础。

    ③、allowedFileExtensions什么时候起作用

    上节我们讨论完“allowedFileTypes”,捎带说了“allowedFileExtensions”,那么如何让后缀进行check呢?

    			$(this).fileinput({
    				showUpload : false,
    				showRemove : false,
    				language : 'zh',
    				allowedPreviewTypes: ['image'],
    		        allowedFileExtensions:  ['jpg', 'png'],
    				maxFileSize : 2000,
    				
    			});
    

    fileinput组件此时指定的属性如上,没有了“allowedFileTypes”,并且指定允许的后缀类型为“[‘jpg’, ‘png’]”,也就是说,假如我们选择了gif的图片就会出现错误提示。
    这里写图片描述

    错误预期的发生了,那么请特别注意:

    image: function (vType, vName) {
                return (vType !== undefined) ? vType.match('image.*') : vName.match(/\.(png|jpe?g)$/i);
            },
    

    fileinput.js文件中原始的代码如下:

     image: function (vType, vName) {
                return (vType !== undefined) ? vType.match('image.*') : vName.match(/\.(gif|png|jpe?g)$/i);
            },
    

    image类型的后缀当然默认包含了gif,我只是为了举例说明,代码做了调整,请注意!


    好了,老铁,能否来个 2 连:

    1、为本文点赞,让更多的小伙伴看到这篇文章。
    2、微信搜索「沉默王二」,关注后回复关键字「666」可以获得一份 500G 的高清教学视频,Bootstrap 也有哟。

    展开全文
  • 本篇推荐一款twitter做的bootstrapValidator.js(最好用的bootstrap表单验证插件,没有之一),本身bootstrap就是twitter做的,那么使用原配的validator也就更值得信赖。

    本篇推荐一款twitter做的BootstrapValidator,本身Bootstrap就是twitter做的,那么使用原配的validator也就更值得信赖。从百度上搜BootstrapValidator会出现很多款,但我只推荐这款(突然感觉自己有点“库【Steve 库里】吹”的感觉)。

    这里写图片描述

    ###一、一睹为快
    这里写图片描述
    为了简便的介绍,这里只做为空的check。

    BootstrapValidator官方下载地址

    ###二、资源引用

    下载完资源包后,你可以看到如下的目录。
    这里写图片描述

    然后把以下三个文件引入到你项目。

    <link type="text/css" rel="stylesheet" href="${ctx}/components/validate/css/bootstrapValidator.css" />
    <script type="text/javascript" src="${ctx}/components/validate/js/bootstrapValidator.js"></script>
    <script type="text/javascript" src="${ctx}/components/validate/js/language/zh_CN.js"></script>
    

    ###三、会员名称不为空项目配置

    <form class="form-signin required-validate" action="${ctx}/login" method="post" οnsubmit="return validateCallback(this)">
    	<div class="form-group">
    		<div class="row">
    			<label>账户</label>
    			<input class="form-control" type="text" autofocus name="username" placeholder="请输入会员编号" autocomplete="off"
    				data-bv-notempty />
    		</div>
    	</div>
    </form>
    
    1. data-bv-notempty表示该会员编号要做为空check。
    2. form-group的div是必须的,否则会报“too much recursion”错误。
    3. form表单提交的时候会执行validateCallback方法,该方法在第五步中具体介绍。

    ###四、页面加载完成后启用bootstrap validator

    
    $(function() {
    	// validate form
    	$("form.required-validate").each(function() {
    		var $form = $(this);
    		$form.bootstrapValidator();
    		
    		// 修复bootstrap validator重复向服务端提交bug
    		$form.on('success.form.bv', function(e) {
    			// Prevent form submission
    			e.preventDefault();
    		});
    		
    		
    	});
    });
    
    1. 在form表单上加上‘class=“required-validate”’属性,然后通过jquery获取对应form表单,对其执行默认的bootstrapValidator加载。
    2. 一定要注意上面代码中注释部分代码,具体介绍可参照修复BootstrapValidator重复提交的bug

    ###五、form表单提交时验证项目

    function validateCallback(form, callback, confirmMsg) {
    	YUNM.debug("进入到form表单验证和提交");
    
    	var $form = $(form);
    
    	var data = $form.data('bootstrapValidator');
    	if (data) {
    	// 修复记忆的组件不验证
    		data.validate();
    		
    		if (!data.isValid()) {
    			return false;
    		}
    	}
    
    	
    	$.ajax({
    		type : form.method || 'POST',
    		url : $form.attr("action"),
    		data : $form.serializeArray(),
    		dataType : "json",
    		cache : false,
    		success : callback || YUNM.ajaxDone,
    		error : YUNM.ajaxError
    	});
    
    	return false;
    }
    
    1. validateCallback中获取form表单后,通过isValid方法可以返回表单验证是否通过。
    2. 当表单验证通过后,再通过ajax将表单提交到服务端。

    展开全文
  • bootstrap-fileinput 表单同步提交

    千次阅读 2020-05-28 14:03:28
    先看基本的教程及API,我就不重复了,直接上干货。我的框架是springboot+thymeleaf ... ...文件路径:</label> <div class="col-sm-8"> <div class="file-loading"> <input

     

    先看基本的教程及API,我就不重复了,直接上干货。https://www.cnblogs.com/parker-yu/p/7207071.html

    仅仅是个简单的示例,文件数量  类型等限制都没有加。。。。

    我的框架是springboot+thymeleaf

    1、HTML

    <div class="form-group">
        <label class="col-sm-3 control-label">文件路径:</label>
        <div class="col-sm-8">
            <div class="file-loading">
                <input id="fileinput-demo-1" name="files" type="file" multiple>
            </div>
        </div>
    </div>

     

    2、js

    下面这个是控件初始化

    $(document).ready(function () {
        $("#fileinput-demo-1").fileinput({
            'theme': 'explorer-fas',
            'uploadUrl': '/common/uploadFiles',
            uploadExtraData: {'directory':'news'},
            overwriteInitial: false,
            showPreview:false,
            showUpload: false,
            uploadAsync:false, //false 同步上传,后台用数组接收,true 异步上传,每次上传一个file,会调用多次接口
            previewClass:"uploadPreview"
        }).on("change", function() {
            // 清除掉上次上传的图片
            $(".uploadPreview").find(".file-preview-frame:first").remove();
            $(".uploadPreview").find(".kv-zoom-cache:first").remove();
        }).on("filebatchselected", function(e, files) {
                //$(this).fileinput("upload");             // 文件选择完直接调用上传方法。
        }).on('filebatchuploadsuccess',function(event,data,previewId,index) {
            console.log(data);
        });
    });

    3、form表单提交

    function submitHandler() {
        if ($.validate.form()) {
            // 上传文件
            $("#fileinput-demo-1").fileinput("upload");
        }
    }

    ----------------------------------------------------------------------------

    划重点

    ----------------------------------------------------------------------------

    1  使用同步提交    设置 uploadAsync:false

    2  上传文件  在表单提交后,进行完表单验证后,手动提交上传文件  $("#fileinput-demo-1").fileinput("upload");

    3  文件上传成功后的处理

    on('filebatchuploadsuccess',function(event,data,previewId,index) { console.log(data); })

     

     

    展开全文
  • jdngao+bootstrap的ajax提交form表单Demo,完整实例代码: 1,html代码 {% load bootstrap3 %} &lt;form enctype="multipart/form-data" id="form" method="post" class=&...
  • 因为项目用的是bootstrap,所以就将就到底,直接用bootstrapvalidate 插件了。 两个插件文件引进来先,可以在官网下载 1. bootstrapValidator.min.css 2. bootstrapValidator.min.js随便找个页面吧,修改密码的...
  • (第一步)引入bootstrap所需要样式与js。  (第二步)HTML定义一个DIV。  (第三步)定义显示/隐藏函数。 function hideModal(){ $('...
  • 表单类型 标签和控件放在一个里 所有的文本元素input、textarea、select 隐藏标签 向标签添加 垂直基本表单 role = “form” class = “form-group” class = “form-control” 内联表单 role = ...
  • bootstrap fileinput 包含所需要的js,css,以及官方例子
  • bootstrapValidator表单验证文件上传-图片部分写在最前bootstrapValidator表单验证配合fileinput使用时的图片验证问题。代码描述$('#thisForm').bootstrapValidator({ message: '请正确输入', feedbackIcons: { ...
  • Bootstrap表单

    2015-08-03 13:34:15
    Bootstrap并未对其做太多的定制性效果设计,仅仅对表单内的fieldset、legend、label标签进行了定制。还有input、select、textarea等元素,在Bootstrap框架中,通过定制了一个类名form-control, 也就是说,如果这几...
  • Bootstrap三种表单布局的使用方法

    万次阅读 2017-05-17 10:36:40
    Bootstrap提供了三种表单布局:垂直表单,内联表单和水平表单  创建垂直或基本表单:  •·向父 元素添加 role="form"。  •·把标签和控件放在一个带有 class .form-group 的 中。这是获取最佳间距所必需的。...
  • bootstrapValidator表单验证使用方法

    万次阅读 多人点赞 2017-09-03 01:17:20
    bootstrapValidator表单验证使用方法
  • 进行表单校验配置 校验要求: (1) 用户名不能为空, 长度为2-6位 (2) 密码不能为空, 长度为6-12位 */ $(’#form’).bootstrapValidator({ // 配置图标 feedbackIcons: { valid: 'glyphicon glyphicon-ok'...
  • Bootstrap表单控件的大小和状态

    千次阅读 2019-01-20 17:11:38
    一 表单控件大小 1 代码 &lt;!doctype html&gt; &lt;html lang="en"&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;表单控件...
  • Bootstrap 自定义表单

    2019-07-25 11:58:02
    一、Bootstrap 自定义表单 1.1 自定义复选框 如果要自定义一个复选框,可以设置 <div> 为父元素,类为 .custom-control 和 .custom-checkbox,复选框作为子元素放在该 <div> 里头,然后复选框设置为 ...
  • Bootstrap 表单详解

    2018-04-27 09:55:25
    Bootstrap 通过一些简单的 HTML 标签和扩展的类即可创建出不同样式...基本的表单结构是 Bootstrap 自带的,个别的表单控件自动接收一些全局样式。下面列出了创建基本表单的步骤: 向父 &lt;form&gt; 元素...
  • Bootstrap 表单和图片

    千次阅读 2017-03-22 16:48:28
    一.表单1.基本格式 电子邮件 请输入您的电子邮箱" /> <la
  • bootstrap文件上传组件bootstrap-filestyle

    千次阅读 2018-09-04 15:00:07
    源码地址: https://github.com/markusslima/bootstrap-filestyle ...bootstrap-filestyle是个精简实用的文件上传组件,功能比较纯粹, 使用方法相对简单 效果图:   引入资源,注意顺序 &lt;h...
1 2 3 4 5 ... 20
收藏数 9,741
精华内容 3,896
关键字:

binder