1

私はjQueryを使い始めていますが、クリック時にスペイン語アクセント記号をsimple_formテキストフィールドに追加するためのブートストラップボタンを追加しようとしています。私はthis質問への答えの後にコードをモデル化していますが、現在ボタンをクリックしても何も起こっていません - 私は何か間違っていますか?ビューでボタンにテキストを追加するjqueryでシンプルなフォームにする

、私は簡単なフォームを使用して、テキストフィールドにラッパーIDを追加している:私はapplication.jsで

<%= simple_form_for @word, url: lesson_image_spelling_path(current_lesson, @word.word), method: :patch do |f| %> 
    <%= f.input :spelling_attempt, wrapper_html: { id: 'txt' }, label: "Spell the word:" %> 

    <br> 

    <button type="button" class="btn btn-secondary btn-sm" id="a-accent">á</button> 

    <%= f.button :submit, "Submit", class: 'btn btn-primary' %> 
<% end %> 

jQuery("#a-accent").on('click', function() { 
    var $txt = jQuery("#txt"); 
    var caretPos = $txt[0].selectionStart; 
    var textAreaTxt = $txt.val(); 
    var txtToAdd = "test"; 
    $txt.val(textAreaTxt.substring(0, caretPos) + txtToAdd + textAreaTxt.substring(caretPos)); 
}); 
+2

jqueryを 'document.ready(function(){...})'にラップするか、clickイベントハンドラをグローバル '$(document).on( 'click'、 '#a-accent' 、function(){..}) ' – Rik

答えて

1

はたぶん代わりにinput_html使用wrapper_html。 clickイベントにconsole.log( 'btn clicked')を入れ、このイベントが機能するかどうかをブラウザのコンソールで確認します。

+0

Rikによって提案されたinput_htmlとdocument.ready(関数)の組み合わせがトリックを行いました:) – gonzalo2000

関連する問題