Dojo数字主题渲染form_for提交没有文本的输入

时间:2011-02-13 20:12:49

标签: ruby-on-rails ruby ruby-on-rails-3 dojo dijit.form

我有以下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" %>

enter image description here

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>

2 个答案:

答案 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上编写助手脚本