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.