React:提交表单后如何清除文件输入和数据输入字段?

dan_boy

提交包含数据字段和文件字段的表单后,仅清除数据字段,但保留上载的文件字段。查看图片:这里

OnChange功能

    onChange = (e) => {
        if(e.target.name === 'audio') {
            this.setState({
                [e.target.name]: e.target.files[0], loaded: 0,
            }, () => console.log(this.state.audio))

        } else {

            this.setState({
                [e.target.name]: e.target.value
            }, () => console.log(this.state))
        }
    }

提交功能


      onSubmit = e => {
    e.preventDefault();
    let { title, content, audio} = this.state;
    //const story = { title, content, audio};
    let formDataStory = new FormData();
    formDataStory.append('audio', audio);
    formDataStory.append('title', title);
    formDataStory.append('content', content);
    this.props.addStory(formDataStory);
    this.setState({
      title: "",
      content:"",
      audio: ""
    });
  };

形成

  render() {
    const {title, content, audio} = this.state;
    return (
      <div className="card card-body mt-4 mb-4">
        <h2>Add Story</h2>
        <form onSubmit={this.onSubmit}>

          <div className="form-group">
            <label>Title</label>
            <input
              className="form-control"
              type="text"
              name="title"
              onChange={this.onChange}
              value={title}
            />
             </div>
           <div className="form-group">
            <label>Content</label>
            <input
              className="form-control"
              type="text"
              name="content"
              onChange={this.onChange}
              value={content}
            />
          </div>

           <div className="form-group">
            <label>Audio</label>
            <input
              className="form-control"
              type="file"
              name="audio"
              onChange={this.onChange}
              //value={audio}
            />
          </div>

         <div className="form-group">
            <button type="submit" className="btn btn-primary">
              Submit
            </button>
          </div>
        </form>
      </div>
    );
  }
}

提交表单后,如何重置文件上传字段以及其他数据字段?

非常感谢!

卡梅伦·利特尔

由于file输入始终不受控制,因此您需要使用domref并手动清除该值。

这是执行此操作的示例功能组件:

function ExampleFileInput() {
  const ref = React.useRef();
  function handleClick() {
    ref.current.value = ""
  }
  return (
    <div className="App">
      <input type="file" ref={ref}/><br />
      <button type="button" onClick={handleClick}>Clear file</button>
    </div>
  );
}

要在类组件中使用,请参阅docs您可以阅读更多有关清除此问题中文件输入的方法

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在React中提交表单后无法清除输入字段

来自分类Dev

提交到数据库后如何清除输入字段

来自分类Dev

提交后如何清除表单输入?

来自分类Dev

清除Angular表单提交中的输入字段?

来自分类Dev

在React中使用useEffect函数组件成功提交后如何清除输入字段

来自分类Dev

成功提交数据后,如何清除文件输入中的文件选择?

来自分类Dev

在 React 中提交表单后无法重置输入字段

来自分类Dev

使用Typehead提交后清除输入数据

来自分类Dev

提交后React Hooks清除输入

来自分类Dev

表单提交错误后如何重新填充文件输入

来自分类Dev

选择预输入后如何清除字段?

来自分类Dev

提交时清除输入字段

来自分类Dev

单击提交后无法自动清除输入字段(反应)

来自分类Dev

提交后清除文本输入

来自分类Dev

输入后如何提交搜索字段

来自分类Dev

如何使输入字段在提交后添加文本

来自分类Dev

React TypeScript:如何清除输入字段

来自分类Dev

提交输入值后清除输入

来自分类Dev

输入字段清除后消失

来自分类Dev

提交后如何仅从表单中清除特定字段?

来自分类Dev

在Phoenix LiveView中提交后重置表单输入字段

来自分类Dev

验证输入后提交表单

来自分类Dev

将文件输入移动到新元素后,如何访问与文件输入关联的文件名和数据?

来自分类Dev

用户输入后如何清除表单上的验证消息

来自分类Dev

提交后的django清除表单字段

来自分类Dev

提交后反应清除表单字段

来自分类Dev

成功提交后清除表单字段

来自分类Dev

提交React表单后,如何清除Bootstrap 4错误?

来自分类Dev

在Google表单中提交后访问用户输入的数据

Related 相关文章

热门标签

归档