私は内部ウェブサイトのドロップダウンとテキスト入力を作成するために選択を使用しています。私の問題は、maxItemsが1に設定されるたびに、Selectizeは自動的にフィールドをドロップダウンに変えるということです。私はそれがtextareaの外観を持って、新しい項目をタグ付けしたい。しかし、ユーザーが複数の価値を生み出すことを許したくはありません。以下のコード例。Maxitem = 1のときにSelectizeをドロップダウンに変換しないようにすることはできますか?
コードサンプル1:
<input type="text" id="quantitySelect" placeholder="Quantity" name="quantity">
<script>
$('#quantitySelect').selectize({
delimiter: ',',
plugins: ['restore_on_backspace'],
create: true,
maxItems: 2,
create: function(input) {
return {
value: input,
text: input
}
}
});
</script>
このコードは、所望の効果を作成するが、2つの項目まで可能であろう。数量フィールドは1つの値のみを許可する必要があるため、ユーザーが2つの値を送信しようとしないようにします。 This code generates the desired look, but undesired functionality.
コード例2
<input type="text" id="quantitySelect" placeholder="Quantity" name="quantity">
<script>
$('#quantitySelect').selectize({
delimiter: ',',
plugins: ['restore_on_backspace'],
create: true,
maxItems: 1,
create: function(input) {
return {
value: input,
text: input
}
}
});
</script>
は、これは複数の値を送信しようとするからユーザーを防ぐが、入力ボックスにドロップダウン一見を与えると感じるだろう。 This code generates the desired functionality, but undesired look.
私はSelectizeドキュメントをチェックしましたが、この動作を無効にする方法は見つかりませんでした。
Selectize.jsを次のように変更して、目的の動作が可能になります。あなたは「singleOverride:真を、」追加する場合
// This line is original to Selectize.js.
self.settings.mode = self.settings.mode || (self.settings.maxItems === 1 ? 'single' : 'multi');
// Add the following code beneath it.
if(self.settings.singleOverride === true){
self.settings.mode = 'multi';
}
は今、あなたのselectize定義に、それはmaxItemsを1に設定することができますが、SelectizeはまだのTextInput /タギング方法で動作します。以下の例:
<input type="text" id="quantitySelect" placeholder="Quantity" name="quantity">
<script>
$('#quantitySelect').selectize({
plugins: ['restore_on_backspace'],
create: true,
maxItems: 1,
tagType: "TAG_SELECT",
singleOverride: true,
create: function(input) {
return {
value: input,
text: input
}
}
});
</script>
私は正しい方向に向いているとマイク・マッコーワンは信じています。
感謝を。私は現在ローカルコピーを使用していますし、 '$ input.attr( 'multiple'、 'multiple');'を実行する新しい条件を作成してテキスト入力を行いましたが、まだドロップダウンとして表示されています。コードを実行したことを確認するために 'document.write(" PASSED ")'を追加しました。おそらく、これはSelectize forのデベロッパーに尋ねなければならない機能です。デフォルトの動作を上書きする別の設定かもしれません。 – kubomax
あなたの答えは、私が望む結果が得られるまで、スタンドアロンのSelectize.jsファイルで調整しました。私はより良い可視性のために私の質問にそれを追加します。あなたのお時間をありがとうございました。 – kubomax