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元素创建的按钮之间的不同 ...
随机推荐
- BZOJ 4516: [Sdoi2016]生成魔咒 [后缀自动机]
4516: [Sdoi2016]生成魔咒 题意:询问一个字符串每个前缀有多少不同的子串 做了一下SDOI2016R1D2,题好水啊随便AK 强行开map上SAM 每个状态的贡献就是\(Max(s)-M ...
- POJ 3525 Most Distant Point from the Sea [半平面交 二分]
Most Distant Point from the Sea Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 5153 ...
- 插上腾飞的翅膀:为asp.net core添加protobuf支持
没时间解释了,快上车. 通过NuGet获取Zaabee.AspNetCoreProtobuf Install-Package Zaabee.AspNetCoreProtobuf 在Startup.cs ...
- PHP码农在Golang压力下的生存之道-PHP性能优化实践
随着国内Golang的火爆,phper的生存压力越来越大,在一次内部技术讨论中,gopher甚至提出,要什么php,写php的全部开掉,唉,码农何苦为难码农. 本文试图寻找一种有效实践,减少php w ...
- SQL查询练习一(From LeetCode)
请选用MySQL进行测试. 1.找出后一天比前一天温度高的日期(E) 思路:将该表进行自关联,然后选择出日期靠后的一天,最后选择温度高的日期 select Weather.Id from Weath ...
- Python之数据类型转换
平时我们在处理数据的时候,有些数据类型不是我们想要的,怎么办? 一.数据类型转换:要转换的类型(数据) 要把num01转换为整数:int(num01) 要把num01转换为浮点数:float(num0 ...
- linux下卸载已安装的软件
1.先查询该软件是否安装,是否存在 rpm -qa | grep -i teamview 2.根据一中的结果(软件包名称),执行如下命令 rpm -e [软件包名]
- 记一次 bug 修复 , 未将对象引用实例化
我们对默认值的使用技巧中,同一个组件, 升级版本,增加新的配置字段,执行新的逻辑. 老版本,没有类似的配置字段,走原始逻辑. 在类的构造中,添加了这么一句代码, 运行后,报错,没看出问题原因: boo ...
- 解决maven项目Cannot change version of project facet Dynamic web module to 3.0
问题描述 用Eclipse创建Maven结构的web项目的时候选择了Artifact Id为maven-artchetype-webapp,由于这个catalog比较老,用的servl ...
- Python后端(一)——客户端/服务端
网址组成(四部分) 协议 http, https(https 是加密的http) 主机 g.cn zhihu.com之类的网址 ,因此一般不用填写 路径 下面的「/」和「 ...