2016-02-05 77 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

相关问题