在使用
type类型为file
的input来上传文件时,发现连续上传同一个文件,第二次以后就不会再触发onChange事件,原因是
onChange事件触发的条件为其value发生变化
,上传文件时,该input的value值为文件在磁盘中的位置。知道了触发条件以后,我们就可对症下药:
改变value值即可
。
在input元素中添加onClick事件,点击时将其value置空即可。
<input
type='file'
accept='.xlsx, .xls'
onClick={(event)=> { event.target.value = null }}
onChange ={this.onImportExcel}
其实也一样,就是获取该元素,将其值在合适的地方将其置为空即可。
<input
id='file'
type='file'
accept='.xlsx, .xls'
onChange={this.onImportExcel}
document.getElementById('file').value = null;
在使用type类型为file的input来上传文件时,发现连续上传同一个文件,第二次以后就不会再触发onChange事件,原因是onChange事件触发的条件为其value发生变化,上传文件时,该input的value值为文件在磁盘中的位置。知道了触发条件以后,我们就可对症下药:改变value值即可。方法1在input元素中添加onClick事件,点击时将其value置空即可。<inp...
React文件输入
设置本机HTML文件输入的样式可能会非常麻烦,更糟糕的是,浏览器的默认外观可能与您应用的设计不符。 这个问题是react-file-input旨在解决的问题。
集成后,React文件输入可以Swift消除与需要文件上传的表单相关的麻烦。
npm install react-file-input
程式码范例
用法非常简单:只需使用react-file-input而不是<input type="file" /> !
app.jsx
var React = require ( 'react' ) ,
FileInput = require ( 'react-file-input' ) ;
var Form = React . createClass ( {
handleChange : function ( event ) {
console .
<FormItem label="Account Number" labelCol={defLabelCol} wrapperCol={defLabelCol} className={GlobalStyle['MF-Form-Input']}>
getFieldDecorator('AcctId', {
rule...
import './aap.css'
import React from 'react';
class examplePage extends React.Component {
inputChange(){
var username=this.refs.username.value
this.setState({
date: username
<!-- 引入react核心库 -->
<script src="../js/react.development.js"></script>
<!-- 引入react-dom,用于支持react操作dom -->
<script src="../js/react-dom.development.js"></script>
<!-- 引入babe
<script language='javascript'>
function show(){
var p=document.getElementById("file1").value;
alert(p);
</script>
let lastValue = input.value;
input.value = 'new value';
let event = new Event('input', { bubbles: true });
// hack React15
event.simulated = true;
// hack React16 内部定义了descriptor拦截value,此处重置状态
let tracker = input._va
给input加ref,然后在你自定义样式的标签上面加点击事件,触发input的点击事件。
或者用label,都可以的。
如果用label实现请看:改变input样式
import React, { Component, Fragment } from 'react';
import { mess...
出于安全性考虑,JS是不能直接设置File的value值的,下面是我总结出来的方法:
第1个方法是大多人传统做法,替换HTML代码,楼上的已经用到了,我不过是用正则优化一下;
第2个方法利用SendKeys模拟键盘操作,需要允许浏览器调用ActiveX才行;
第3个方法,有点像武侠小说里的"乾坤大挪移"一样,呵呵,看看就知道了!
<html> <head> ...