Simple Form: Is it possible to remove labels and r

2020-08-10 09:44发布

I'm trying to produce a regular simpleform form

= simple_form_for [:hq, @team, @order] do |f|
  .tickets
    = f.select :tickets, :aaa => "aaa"
    = render "ticket"


  .details
    .left
      = f.input :address1
      = f.input :address2
      = f.input :state
      = f.input :country
      = f.input :email
    .right
      = f.input :comments

But I want the inputs to not be rendered with a label, just the title "Address Line 1" in the placeholder.

I know I can do this with f.input :address1, :placeholder => "whatever", :label => "" but I'd like it to be configurable with a wrapper and take the i18n value form label, not placeholder.

2条回答
迷人小祖宗
2楼-- · 2020-08-10 09:56

If you want to use javascript, here is a jQuery snippet that does the job:

$.each($(".left .input"), function() {
  var label = $("label",$(this)).text();
  $("label",$(this)).hide();
  $("input",$(this)).attr("placeholder",label);
});

The main advantage using js for this case is that the result remains screen-readers compliant (they will read the label because they won't run the js).

查看更多
戒情不戒烟
3楼-- · 2020-08-10 10:07

Try doing the following:

f.input :address1, placeholder: "Address Line 1", label: false
查看更多
登录 后发表回答