問題タブ [select2-rails]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
ruby-on-rails - Rails 5とselect2エラー、select2は関数ではありません
Rails select2 gem を使用gem 'select2-rails'
しようとしていますが、次の順序インポート順序で使用しようとすると、select2 は関数ではないとブラウザーが文句を言います。私が発見したことから、この順序は正しいはずです。
javascripts/application.js
javascript - select2 はレールの select 要素に適用されません。ミッシングリンクはどこにありますか?
これまでに私を助けたページ:
期待される結果:
- select2 を select 要素に適用します。その瞬間から、私は再び自分で物事を修正し始めます。
実際の結果:
- Select2 は select 要素には適用されません。
これまでに行った手順:
- それをgemに追加し、バンドルインストールを行います。
//= require select2
このように追加
:
- require select2 と require select2-bootstrap を application.css に追加しました
:
- 私の
name.html.erb
中には:
:
私は作成しましたTag.rb
(データはデータベースに保存されます):
class Tag < ApplicationRecord
validates_presence_of :name
end
- 最後のステップ(私が理解していることから)では、機能を要素に適用します(コードを の
application.js
下に追加します//= require_tree .
):$( "#dropdown" ).select2({ theme: "bootstrap" });
これを次のように変更しました:
$( "#tag_list1" ).select2({
theme: "bootstrap"
});
コンソール:
Uncaught TypeError: $(...).select2 is not a function
私はこれを解決します:
期待される結果:
- select2 を select 要素に適用します。
実際の結果:
- Select2 は select 要素には適用されません。
お知らせ下さい。
更新 1 これは html 出力です。
javascript - select2およびX-editableで送信しないEnterボタン
私はRailsを使用X-Editable
しています。正常に実装できましたが、Enter ボタンを押して変更を送信できなくなりました。select2
select2
使っていた時はこんな感じでしたselect
ここで、ドロップダウンから選択して Enter キーを押すと、変更が送信されます。
ただし、使用するように更新するとselect2
ドロップダウンは完全に機能し、検索も完全に機能しますが、キーボードで Enter キーを押しても変更が送信されなくなりました。変更を送信するには、マウスを使用して横にある青いチェックマーク ボタンをクリックする必要があります。
Enterボタンを押すと、を使用したように送信アクションが実行されるように修正する必要がありますselect
。入力アクションを見つけることができるかどうかを確認するためにアラートをトリガーしようとしましたが、以下のコードを使用して役に立ちませんでした。
アップデート
機能しない主な理由は、検索フィールドが原因だと思います。Enter キーは、ドロップダウン検索フィールドからオプションを選択するために割り当てられているため、送信されません。ドロップダウンからオプションを選択した後に再マッピングして、最初にEnterキーを押したときにドロップダウンから正しいオプションが選択され、次にEnterキーを押したときに送信されるようにする方法はありますか?