2016-06-29 8 views
1

Ich versuche, die Copy/Paste-Funktionalität im Eingabefeld eines Simple_form zu deaktivieren. Ich verstehe, dass dies before außerhalb eines Simple_form-Kontext gefragt wurde. Ich fügte dem Formular selbst eine Klasse hinzu, die den Ideen aus dem Beitrag this folgte, und verwendete diese Klasse innerhalb einer Funktion in application.js. Dies erzeugt derzeit nicht die gewünschte Funktionalität - gibt es eine idiosynkratische Möglichkeit, dies in simple_form zu tun?Disable Kopie/Vergangenheit Funktionalität in Simple_form

(Ich verstehe, dass es nicht empfohlen wird, die Standard-Browserfunktionalität zu manipulieren, aber die Aktion "von Hand kopieren" würde mit dem übereinstimmen, was ich mit meiner App erreichen möchte).

Nach Ansicht:

<%= simple_form_for @word, url: lesson_word_exposition_path(current_lesson, @word.word), html: { class: "disablecopypaste"}, method: :patch do |f| %> 
    <%= f.input :term_given_by_student, label: "Enter the term exactly as above:" %><br> 
    <%= f.button :submit, class: 'btn btn-primary' %> 
<% end %> 

Von application.js:

$(document).ready(function() { 
    $('input.disablecopypaste').bind('copy paste', function (e) { 
     e.preventDefault(); 
    }); 
    }); 

Antwort

3

Sie könnten versuchen, die Benutzer-select CSS-Eigenschaft verwenden.

.unselectable : { 
    -webkit-user-select: none; 
    -moz-user-select: none;  
    -ms-user-select: none;  
    user-select: none;   
} 


$(document).ready(function() { 
    $('input.disablecopypaste').toggleClass('unselectable') 
    });