input 和button的区别
一,区别一
先来看一个问题
<input type="button" class="btn-upload bg-org-code" name="yushow" id="yushow" value="点击上传组织机构代码证" onclick="uploadBtn();"> <input type="file" name="upload" style="display:none;" onchange="previewImg(this);" id="upload" accept="image/*"/> function uploadBtn(){ $("#upload").click(); } function previewImg(imgFile){ console.log(imgFile);//这里打印出是整个input标签 var extension = imgFile.value.substring(imgFile.value.lastIndexOf("."),imgFile.value.length);//扩展名 extension = extension.toLowerCase();//把文件扩展名转换为小写 if ((extension!='.jpg')&&(extension!='.gif')&&(extension!='.jpeg')&&(extension!='.png')&&(extension!='.bmp')){ layer.msg("对不起,系统仅支持标准格式的照片,请您调整格式后重新上传,谢谢 !"); $("#yushow").focus();//将焦点定位在文件上传的按钮上,可以直接按确定键再次触发 }else{ var path;//预览地址 if(document.all){//IE imgFile.select(); path = document.selection.createRange().text; }else{//火狐,谷歌 path = window.URL.createObjectURL(imgFile.files[0]); } $("#yushow").css("background-image","url("+path+")"); $('#yushow').css('backgroundSize','364px 226px'); uploadImg(imgFile); $("#bnt").attr("disabled", true); $("#bnt").css('background','#eee'); } } function uploadImg(imgFile){ var file = imgFile.files[0];//文件对象 var name = file.name;//图片名 var uploadAgainDom = document.querySelector('.upload-again') var maskDom = document.querySelector('.mask') var progressDom = document.querySelector('.progress-bar .progress') $("#upload-again").css('display','none'); $("#mask").css('display','block'); setTimeout(function() { progressDom.className = 'progress end' }, 50) var url = '${rc.contextPath}/WXinUploadController.htm?method=UploadFile'; $.ajaxFileUpload({ url: url, secureuri:false, type: 'POST', fileElementId:"upload", dataType: 'json', success: function (data, status) //服务器成功响应处理函数 { var index = data.indexOf('{'); data= data.substring(index, data.length); var obj = eval('(' + data + ')'); if ("000" == obj.code) { $("#fssId").val(obj.fssId); $("#originalFilename").val(obj.originalFilename); $("#imageType").val(obj.imageType); $("#mask").css('display','none'); $("#bnt").attr("disabled", false); $("#bnt").css('background','#f54d4f'); } else { alert("保存有问题,请重试"); } }, error: function (data, status, e)//服务器响应失败处理函数 { alert(e); } }); }
1,现在要做的就是当触发onclick="uploadBtn();这个事件的时候,会执行$("#upload").click();这个方法,通过它去触发onchange事件onchange="previewImg(this);"。当时当我用button按钮的时候并没有触发previewImg(this)事件,只是 uploadBtn事件触发了。所以后来改成<input type="button" >这种方式居然触发了onchange事件。
2,后来因为前台写死了,button标签的class文件中有大量的css脚本。必须用button的按钮,但是一直不触发这个onchange事件,后来就在button标签中加了一个<button type="button" ,type=“button”>效果就出来了,可以触发onchange事件了。
二,区别二
<form method="post" action=""> <input type="text" name=""> <button>123</button> </form>
当现在有个表单,有用户名和密码,当用户名或者密码没有通过校验的时候,页面会自动刷新页面,这个时候,用户需要重新输入用户名和密码,这个还只是两个input框,假如在一个页面上有多个输入框的时候因为一个没有通过校验,就需要所有的全部重写的话,对用户来说是一个非常不好的体验。所以解决方法和区别一是一样的。
方法一:
<input type="button" value="test">
改成input框的形式,这样就不会刷新页面了。
方法二:
<button type="button">
同样在button标签里面加一个type=“button”
input 和button的区别的更多相关文章
- button与input[type=”button”]的区别
button与input[type="button"]的区别 特别感谢 @守护晴天 ,指出了博客中不细致不严谨的地方,也让我学到了更多,更多是觉得抱歉,由于自己的不细致可能误导了一 ...
- 关于<button> 没写 type='button' 导致点击时提交以及<button>和<input type="button">的区别
这是我的第一篇博客,如果写的不好,请见谅 这是一个关于button按钮一个小问题 最近刚开学跟着老师一起写代码,在模仿JAVA web程序设计(慕课版) P61页第三章 Ajax处理XML的代码中发现 ...
- <button>和<input type="button"> 的区别
<button>标签 定义和用法 <button> 标签定义一个按钮. 在 button 元素内部,您可以放置内容,比如文本或图像.这是该元素与使用 input 元素创建的按钮 ...
- <button>与<input type="button"> 的区别
<button> button按钮点击会刷新整个页面 <input type="button"> 不会刷新整个页面 本文为本人用来记录自己做的一些东西,如 ...
- <button>与<input type="button">的区别
一.定义和用法 <button> 标签定义的是一个按钮. 在 button 元素内部,可以放置文本或图像.这是<button>与使用 input 元素创建的按钮的不同之处. 二 ...
- 解析<button>和<input type="button"> 的区别
一.定义和用法 <button> 标签定义的是一个按钮. 在 button 元素内部,可以放置文本或图像.这是<button>与使用 input 元素创建的按钮的不同之处. 二 ...
- 解析button和input type=”button”的区别
一.定义和用法 <button> 标签定义的是一个按钮. 在 button 元素内部,可以放置文本或图像.这是<button>与使用 input 元素创建的按钮的不同之处. 二 ...
- 【转】解析<button>和<input type="button"> 的区别
一.定义和用法 <button> 标签定义的是一个按钮. 在 button 元素内部,可以放置文本或图像.这是<button>与使用 input 元素创建的按钮的不同之处. 二 ...
- button和input type=button的区别及注意事项
<button>标签 定义和用法 <button>标签定义一个按钮. 在button元素内部,您可以放置内容,比如文本或图像.这是该元素与使用input元素创建的按钮之间的不同 ...
随机推荐
- CF 208E. Blood Cousins [dsu on tree 倍增]
题意:给出一个森林,求和一个点有相同k级祖先的点有多少 倍增求父亲然后和上题一样还不用哈希了... #include <iostream> #include <cstdio> ...
- 小甲鱼OD学习第7讲
这次我们任务是破解这个有日期限制的软件,效果如图所示 我们一边下断点一边调试哪里是NAG窗口的程序,最终我们发现在地址 00489912 处的代码是NAG窗口的代码 通过观察我们把004898E1处 ...
- Hibernate之HelloWorld
1. 步骤 0. 导入相关Jar包. 1. 编写Hibernate的持久化文件 (默认为hibernate.cfg.xml). 2. 编写持久化类. 3. 创建对象 - 关系文件(.htm.xml文件 ...
- CENTOS6.6上搭建单实例ORACLE12C
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn 摘要: 自己在centos6.6上搭建的单实例oracle12c 由 ...
- Java中从键盘输入的三种方法
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...
- Java SocketChannel 读取ByteBuffer字节的处理模型
在JAVA中的流分为字节流或字符流,一般来说采用字符流处理起来更加方便.字节流处理起来相对麻烦,SocketChannel中将数据读取到ByteBuffer中,如何取出完整的一行数据(使用CRLF分隔 ...
- ubuntu终端常用命令及solarized配色(护眼)
ubuntu终端常用命令及solarized配色(护眼) ubuntu 终端 命令 1.常用命令 ctrl + l - 清屏 . cLear ctrl + c - 终止命令. ctrl + d ...
- 常见JedisConnectionException异常分析
异常内容:我看了很多人的博客,千篇一律都是说redis.conf文件的配置问题,发现并不能解决我的问题,今天写这个博客讲解一下我的解决办法: 遇到这个问题第一步:查看虚拟机的防火墙是否关闭,测试方法就 ...
- crontab定时任务(centos)
cron服务是Linux的内置服务,但它不会开机自动启动.可以用以下命令启动和停止服务: /sbin/service crond start /sbin/service crond stop /sbi ...
- PHP不使用任何内置函数实现字符串翻转
实现字符串翻转PHP本身自带一个函数就可以解决,strrev函数.这里不适用任何内置函数实现字符串翻转 案例一(纯字母): $str = 'abcdefghig k'; //假设测试的字符串/g与k之 ...