我想让div包含默认操作(在这种情况下按<enter>)而不是必须创建按钮</enter>

时间:2012-10-05 19:52:02

标签: css internet-explorer-8 haml

这只是IE8中的一个问题。它适用于Firefox,Chrome,Safari甚至IE9。无论如何,我在我的应用程序的登录页面上有一个div,我的样式看起来像一个巨大的灰色按钮。这是代码:

.user_form .submit input[type=submit] {
  display: block;
  width: 100%;
  height: 55px;
  text-align: left;
  margin-bottom: 0;
  padding: 0 11px;
  color: #fff;
  font-size: 16px;
  font-weight: bold;
  line-height: 25px;
  text-shadow: -1px -1px 1px rgba(0,0,0, 0.25);
  text-transform: uppercase;
  background: #4a5a64 url(/images/h1_background.gif) repeat-x;
  border: none;
}

这是haml代码:

.submit
  = submit_tag 'Sign in', :class => 'no_style', :type => 'submit'

因为除了IE8之外,所有浏览器都可以正常工作,我想知道是否有办法解决这个问题而不将其转换为按钮,即haml中的类似内容:

.submit
  %button.submit_tag { bla bla bla } Sign In

谢谢!

更新:这是我整个登录页面的所有Haml代码。正如我所说,在Firefox,Chrome和IE9中,如果输入用户名和密码,然后按Enter键,则进入欢迎页面(当然,假设您的用户名和密码正确)。但是,在IE8中,您只是发出一声嘟嘟声并保持在页面上。

- content_for :trackers do
  = google_analytics_standard_page_tracker
  = salesforce_tracker

- title 'Sign In', false

- form_for :session, :url => session_path, :html => { :class => 'user_form' } do |f|
  .field
    = f.label :email, 'Username'
    = f.text_field :email, :maxlength => 255, :autofocus => true
  .field
    = f.label :password
    = f.password_field :password

  .submit
    %input{ :type => 'submit', :value => 'Sign in' }

.section.right
  %ul.links
    %li= link_to 'Forgot password?', new_password_path
    %li= link_to 'Don\'t have an account? Sign up now', marketing_site_url("/index.php/buy-now")
    %li= link_to 'Resend activation email', resend_activation_path

  = render 'shared/need_help'

1 个答案:

答案 0 :(得分:0)

您始终可以使用原始HTML版本,但您必须手动连接所涉及的所有内容。类似的东西:

%input{:type => "submit", :value => "Add class"}

或者如果您喜欢HTML样式属性

%input(type="submit" value="Add class")