1

jQuery에서 시작하고 클릭시 simple_form 텍스트 필드에 스페인어 액센트 모음을 추가하는 부트 스트랩 버튼을 추가하려고합니다. this 질문에 대한 답변을 작성한 후에 코드를 모델링했는데 현재 버튼을 클릭해도 아무 것도 일어나지 않습니다. 어쩌면 input_html 사용하는 대신jquery로 간단한 폼으로 버튼 클릭시 텍스트 추가

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() {...})'에 감싸거나 클릭 이벤트 핸들러를 전역'$ (document) .on ('click', '# a-accent' , function() {..})' – Rik

답변

1

을 다음보기에서

, 나는 간단한 양식을 사용하여 텍스트 필드에 래퍼 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 %> 

wrapper_html. console.log ('btn 클릭 됨')를 클릭 이벤트에 넣고이 이벤트가 작동하는지 브라우저 콘솔에서 확인하십시오.

+0

Rik이 제안한 input_html과 document.ready (함수)의 조합이 트릭을 수행했습니다 :) – gonzalo2000