私はselect2ライブラリを利用するテキストボックスを持っています。結果が見つからない場合にリモートデータに新しいレコードを追加する - select2
HTML:
<div class="form-group">
<label for="tags" class="control-label">Tags</label>
<select class="tagsSearch" class="form-control" ng-model="post.tags" id="tags" style="width: 100%">
</select>
</div>
JS:私は APIを自動入力する新しいフィールドを見つけることが引き金/API/searchTagsを得るよう
$(".tagsSearch").select2({
placeholder: 'Search for tags',
delay: 250,
tags: true,
multiple: true,
tokenSeparators: [',', ' '],
minimumInputLength: 2,
minimumResultsForSearch: 1,
ajax: {
url: function (params) {
return '/api/searchTags';
},
dataType: "json",
type: "GET",
data: function (params) {
return {
text: params.term
};
},
processResults: function(data){
return{
results: $.map(data, function(obj){
return {
id: obj.name, text: obj.name
};
})
};
}}
});
これは実際に動作します。一致するものが見つからない場合、ユーザーは新しいものを作成するオプションを持っています。
は、私には、例えば、APIを介してリモートデータソースには、この新たに選択したテキストを追加できるようにしたい:
/API/addToTags
しかし、私はそのイベントをトリガしますか?
また、これらの不一致フィールドを「マーク」することで、フォームが送信されたときにマークされたフィールドを探して代わりにAPIを作成することができます。
これは十分明確です。任意の入力をいただければ幸いです。
コメントと.onの変更メソッドありがとうございます。しかし、問題は、ドロップダウンから選択されているので、すでにタグコレクション内にあるタグを検索することです。私が探しているのは、ドロップダウンからテキストを選択すると、/ addToTagsをトリガーしない方法です。しかし、私が新しいものをタイプアップし、代わりにそれを選択すると、私は/ addToTagsをトリガできるようにしたい。私はこれが理にかなってほしい。 –
私の2番目の解決策はなぜあなたに適していないのですか?/addToTagsがすでに使用されているタグのグローバルスコープにもう1つの配列を追加できます。 –
私はそれをテストしますが、数字を含むすべてのタイプのテキストをサポートする必要があります。あなたのご協力ありがとうございました。 –