2016-02-05 97 views
2

我想創建一個<form>標籤象下面這樣:如何在沒有名稱的<form>中設置名稱:?

<form accept-charset="UTF-8" action="/login" method="post" name="login_form"> 

http://hexdocs.pm/phoenix_html/Phoenix.HTML.Form.html在線文檔說,我叫的form_for模板,如:

<%= form_for @changeset, login_path(@conn, :index), [name: :login_form], fn form -> %> 

但出現警告:the :name option in form_for/inputs_for is deprecated, please use :as instead

抑制name:替換爲as:,但name參數被省略。如何使用as:或其他參數設置名稱?

<%= form_for @changeset, login_path(@conn, :index), [as: :login_form], fn form -> %>` 

回答

2

我認爲,直到棄用移除你應該變通方法使用兩個密鑰(:name:as)。

name: tag鍵設置name="login_form"屬性設置表單字段login_form[field_name]。 我認爲衝突的原因是:name改爲:as

代碼

<%= form_for @changeset, @action, [name: "login_form"], fn f -> %> 
    <%= text_input f, :user, class: "form-control" %> 
<% end %> 

結果

<form name="login_form" method="post"> 
    <input name="login_form[user]" type="text"> 
</form> 

如果同時設置了:as標籤從:name覆蓋領域對象定義。

代碼

<%= form_for @changeset, @action, [name: "login_form", as: "account"], fn f -> %> 
    <%= text_input f, :user, class: "form-control" %> 
<% end %> 

結果

<form name="login_form" method="post"> 
    <input name="account[user]" type="text"> 
</form> 

希望它能幫助。

+0

謝謝!我可以用你的解決方法迴避這個問題。 – hykw