Ich habe eine einfache Liste mit Filter, und ich möchte den Filter löschen, wenn Sie auf clear (die aktualisiert auch die Liste mit allen Elementen).App nicht ausgeführt Js-Code in Assets/Javascripts
ich ein Formular in index.html.erb haben:
</br >
<%= form_tag '', method: :get, remote: true do %>
<%= label_tag 'content:' %>
<%= text_field_tag :content %>
<%= label_tag 'submitter:' %>
<%= text_field_tag :submitter %>
<%= label_tag 'feeback type:' %>
<%= text_field_tag :feedback_type %>
<%= submit_tag 'Filter', class: 'btn btn-primary' %>
<%= link_to 'clear fields', feedback_messages_path, remote: true, type: 'button', class: 'btn btn-danger', id: 'clear-button' %>
<% end %>
In app/assets/feedback_messages, ich habe:
$("#clear-button").click(function() {
console.log('foo');
$("#content").val(' ');
$("#submitter").val(' ');
$("#feedback_type").val(' ');
});
In application.js, ich habe jede Kombination von require-Anweisungen versucht, aber keine. Hier ist, was ich jetzt habe, versuchen, explizit die js-Datei zu laden:
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require feedback_messages
Wenn ich die Webseite zu laden, die JS-Datei in Quellen zur Verfügung steht, wird aber nicht ausgeführt werden. Wenn ich die js zu index.html.erb in einem script
-Tag verschiebe, funktioniert es, also glaube ich nicht, dass es ein Problem mit der js gibt.
Der Code funktioniert ordnungsgemäß mit Clearing-Listen, also schließe ich den Controller und js.erb Code aus.
Können Sie erklären, warum dies asynchron ohne Remote funktioniert: True Param? Liegt es am Form-Tag? –
Der $ ("# clear-button"). Klick (function() wird auf dem Formular ausgeführt. Also sagt der Link "# clear-button" mit remote true, dass eine Aktion auf dem Server stattfinden soll Ich bin mir nicht 100% ig sicher, aber ich glaube, dass das JavaScript, das remote true steuert, die Click-Funktion verschluckt hat. – DottedT