簡體   English   中英

在React.js中設置onSubmit

[英]Setting onSubmit in React.js

在提交表單時,我正在嘗試執行doSomething()而不是默認的帖子行為。

顯然在React中, onSubmit是表單支持的事件。 但是,當我嘗試以下代碼時:

var OnSubmitTest = React.createClass({
    render: function() {
        doSomething = function(){
           alert('it works!');
        }

        return <form onSubmit={doSomething}>
        <button>Click me</button>
        </form>;
    }
});

運行doSomething()方法,但此后仍然執行默認的后期行為。

你可以在我的jsfiddle中測試這個。

我的問題:如何防止默認的帖子行為?

doSomething()函數中,傳入事件e並使用e.preventDefault()

doSomething = function (e) {
    alert('it works!');
    e.preventDefault();
}

我還建議將事件處理程序移到render之外。

var OnSubmitTest = React.createClass({

  submit: function(e){
    e.preventDefault();
    alert('it works!');
  }

  render: function() {
    return (
      <form onSubmit={this.submit}>
        <button>Click me</button>
      </form>
    );
  }
});
<form onSubmit={(e) => {this.doSomething(); e.preventDefault();}}></form>

它對我來說很好

您可以將事件作為參數傳遞給函數,然后阻止默認行為。

var OnSubmitTest = React.createClass({
        render: function() {
        doSomething = function(event){
           event.preventDefault();
           alert('it works!');
        }

        return <form onSubmit={this.doSomething}>
        <button>Click me</button>
        </form>;
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM