2016-06-13 13 views
1

我有一個小表單,我正在使用它通過URL傳遞一個值(作爲查詢參數)。表格如下:React屬性不顯示爲查詢參數

<form method="GET"> 
    <input type="hidden" value={`${this.props.age}`} name="p" /> 
    <a href="profile" class="btn btn-primary" type="submit">View</a> 
</form> 

想法是從新頁面中的URL訪問年齡值。喜歡的東西:

http://localhost:8000/?age=13 

然而,當我點擊鏈接,沒有查詢參數出現在URL。有人知道如何解決這個問題嗎?提前致謝!!

回答

3

我認爲你應該使用<button>代替<a>,因爲當你點擊View你去/profile/頁面(href具有財產/profile/),但不提交表單服務器。 type屬性爲buttona具有不同的含義

按鈕 - 的type屬性指定按鈕的類型。

a - type屬性指定鏈接文檔的Internet媒體類型(以前稱爲MIME類型)。

<form method="GET"> 
    <input type="hidden" value={`${this.props.age}`} name="p" /> 
    <button className="btn btn-primary" type="submit">View</button> 
</form> 

Example


也可以觸發submit方法,防止默認操作<a>

var App = React.createClass({ 
    submit: function (e) { 
    e.preventDefault(); 
    this.refs.form.submit(); 
    }, 

    render: function() { 
    return <form method="GET" ref="form"> 
     <input type="hidden" value={`${this.props.age}`} name="p" /> 
     <a href="profile" class="btn btn-primary" onClick={ this.submit }>View</a> 
    </form>; 
    } 
}); 

Example

+1

謝謝你,那有效! – user3033194

1

<a>標記不會提交表單,只會重定向到其他網址。

下面應該工作:

<form method="GET" action="profile"> 
    <input type="hidden" value={this.props.age} name="p" /> 
    <button class="btn btn-primary" type="submit">View</button> 
</form> 
1

<a>標記只能重定向到一個頁面。 然後,您可能需要添加一些CSS代碼,使按鈕看起來像一個<a>標籤。

<form method="GET" action="profile"> 
<input type="hidden" value={this.props.age} name="p" /> 
<button class="btn btn-primary" type="submit">View</button> 
</form>