如何在没有名称的
问题描述:
我想创建一个<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 -> %>`
答
我认为,直到弃用移除你应该变通方法使用两个密钥(: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>
希望它能帮助。
谢谢!我可以用你的解决方法回避这个问题。 – hykw