我有以下Rails form_for定义。正如您在屏幕截图中看到的那样,它不会呈现“提交”输入的“登录”文本。我还包括了生成的HTML。
<h2>Sign in</h2>
<%= form_for(resource, :as => resource_name, :url => session_path(resource_name), :dojoType => "dijit.form.Form") do |f| %>
<p><%= f.label :login %><br />
<%= f.text_field :login, {:dojoType => "dijit.form.TextBox"} %></p>
<p><%= f.label :password %><br />
<%= f.password_field :password, {:dojoType => "dijit.form.TextBox"} %></p>
<% if devise_mapping.rememberable? -%>
<p><%= f.check_box :remember_me, {:dojoType => "dijit.form.CheckBox"} %> <%= f.label :remember_me %></p>
<% end -%>
<p><%= f.submit "Sign in", {:dojoType => "dijit.form.Button"} %></p>
<% end %>
<%= render :partial => "devise/shared/links" %>
HTML
<span class="dijit dijitReset dijitInline dijitButton" dir="ltr" widgetid="user_submit"><span class="dijitReset dijitInline dijitButtonNode" dojoattachevent="ondijitclick:_onButtonClick">
<span class="dijitReset dijitStretch dijitButtonContents" dojoattachpoint="titleNode,focusNode" wairole="button" waistate="labelledby-user_submit_label" role="button" aria-labelledby="user_submit_label" id="user_submit" tabindex="0" style="-webkit-user-select: none; ">
<span class="dijitReset dijitInline dijitIcon" dojoattachpoint="iconNode"></span><span class="dijitReset dijitToggleButtonIconChar">●</span>
<span class="dijitReset dijitInline dijitButtonText" id="user_submit_label" dojoattachpoint="containerNode"></span>
</span>
</span>
<input name="commit" type="submit" value="Sign In" class="dijitOffScreen" dojoattachpoint="valueNode">
</span>
答案 0 :(得分:1)
您的ERB代码是正确的,它运行正常。 看来你在主布局上遇到了麻烦。 您必须添加dojo脚本定义部分。 我建议你为这个概念创建一个干净的新布局。 我的头是在dojo.html.erb
&lt;%= stylesheet_link_tag“默认”%&gt; &lt;%= csrf_meta_tag%&gt; &lt;%= javascript_include_tag'http://ajax.googleapis.com/ajax/libs/dojo/1.5/dojo/dojo.xd.js',:djconfig =&gt; “parseOnLoad:true”%&gt;
答案 1 :(得分:0)
问题很简单,如果你在dojo上检查样本,按钮是按钮类型,但是rails产生输入类型,所以它不起作用。 你可以在erb文件上写,
<button dojoType="dijit.form.Button" type="button">Click me too!</button>
它正在工作, 或者您可以在application_helper.rb上编写助手脚本