Rails: Bagaimana mengubah teks pada tombol kirim dalam Formulir Rails


109

Saya telah mendaftarkan file _form.html.erb saya di bawah ini yang ingin saya lakukan adalah mengubah teks pada tombol kirim. Saya tahu cara melakukannya di html tetapi tidak tahu cara melakukannya di Rails 3

%= form_for(@faq) do |f| %>
  <% if @faq.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@faq.errors.count, "error") %> prohibited this faq from being saved:</h2>

      <ul>
      <% @faq.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :question %><br />
    <%= f.text_field :question %>
  </div>
  <div class="field">
    <%= f.label :answer %><br />
    <%= f.text_area :answer %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

Jawaban:


193

dari pada

<%= f.submit  %>

taruh

<%= f.submit "My Submit Text" %>

OMG saya tidak percaya saya sangat dekat saya mencoba menggunakannya seperti HTML name = "My Submit Text" terima kasih ini mendapatkan apa yang saya cari :)
— Rod Nelson

1
Saya tidak percaya hal yang sangat sederhana ini tidak ada dalam dokumen API fricking untuk metode ini .
— Berikan Birchmeier

4
Ini tidak berhasil untuk saya - saya harus melakukannya <%= f.submit :value => "Login" %>. (Rel 3.2.11)
— cassi.lup

2
Jika Anda ingin mempertahankan gaya tombol, Anda dapat melakukan: f.button: submit, "My Submit Text"
— jonathanrz

Layak untuk membaca jawaban lain yang menunjukkan cara membuat perubahan menggunakan file seperti config/locales/en.yml
— cwd

63

Jika Anda ingin mengubah semua membuat dan memperbarui tag pengiriman formulir, perubahan ini mudah dilakukan. Modifikasi config/locales/en.ymlseperti ini:

en:
  helpers:
    submit:
      create: "Crear un %{model}"
      update: "Confirmar cambios al %{model} creado"

55
Saya suka bagaimana Anda menempatkan frasa bahasa Spanyol dalam bahasa Inggris!
— graywh

Saya ingin mengedit jawaban ini, tetapi saya lebih suka membiarkan orang datang ke sini, dan tersenyum (sampai mereka menemukan bug baru).
— Arslan Ali

43

Berdasarkan jawaban @ daniel, Anda juga dapat menyesuaikan nilai tag pengiriman berdasarkan model :

en:
  helpers:
    submit:
      model_name:
        create: "Create"
        update: "Update"

Dan kemudian dalam formulir Anda, Anda cukup menggunakan:

<%= f.submit %>

Lihat di sini untuk dokumentasi (contoh kedua.)


16

Kamu bisa memakai:

<%= f.submit 'Name of the submit button' %>

Untuk pertanyaan seperti ini, pertimbangkan untuk menggunakan dokumen yang tersedia di

Terkadang, pencarian google seperti di bawah ini membantu:


3
jauh lebih mudah bertanya di sini daripada mencoba membacanya dokumen tanpa contoh!
— Rod Nelson

2
Saya menemukan dokumen Ruby sangat membuat frustasi ketika harus menjawab pertanyaan spesifik bagaimana melakukan-saya-melakukan-xxx.
— Berikan Birchmeier

6

Saat menulis di erb

<%= f.submit "your text" %>

saat menulis di HAML

= f.button :submit, "your text"

Dalam HAML koma harus ada setelah mengirimkan jika tidak maka akan menimbulkan kesalahan.


2
Koma tidak harus ada, bekerja untuk saya tanpa.
— erb

Ya, Anda benar di haml koma diperlukan. = f.button: kirim, "teks Anda"
— Pulkit Agarwal

Menggunakan koma membuat kesalahan bagi saya (dan berfungsi dengan baik tanpa koma) di rel 4 (tidak ada haml).
— pelangi

@naomisorbet ya, makanya saya koreksi di 2 komentar saya. Silakan periksa.
— Pulkit Agarwal

1
Iya. Saya melihat jawaban pertama dan itu membuat kesalahan. Saya hanya menambahkan koma seperti yang Anda katakan dan berhasil.
— Sweet_Cherry

5

Saya mengalami masalah ini dan saya hanya perlu menerjemahkan nama model seperti ini:

pt-br:
  activerecord:
    models:
      user:
        one: "Usuário"
        more: "Usuários"

Ini juga akan melengkapi jawaban @ daniel yang memberi saya petunjuk apa yang hilang. Namun, saya kira jawaban @ daniel tidak terlalu diperlukan karena sudah ada di rails-i18n


2

Terkadang menggunakan helper tidak dapat diterima karena teks bekas atau Anda perlu menambahkan kelas, dll., Jadi Anda dapat langsung mengganti value:

<%= f.submit class: 'btn btn-primary', value: 'Login' %>

atau:

<%= f.button :submit, class: 'btn btn-primary', value: 'Login' %>

Ngomong-ngomong itu disebutkan oleh @ cassi.lup dalam komentar untuk menerima jawaban.

Diuji di Rails 4.2.3.


1

Untuk berjaga-jaga, saya mencoba skenario ini:

f.submit t('conf.begin') class: 'btn btn-outline btn-success'

Tapi itu tidak berhasil, solusinya adalah dengan koma sebelum kelas (itu tidak jelas pada awalnya untuk saya):

f.submit t('conf.begin'), class: 'btn btn-outline btn-success'

Bersulang



0

Sederhana saja, gunakan

<%= f.submit 'Desired text on the button' %>
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.