2017-07-12 22 views
0

は私がマルチ選択オプションで選択リストがありません:HTML複数選択変更「なし選択された」テキスト

<select data-bind="attr:{'id':'multilistS'+Id()},foreach: Hlist" multiple="multiple"> 
    <option data-bind="click:$root.changeShole,value:$data.Id, text:N,attr:{'selected':$data.Sel}">Cheese</option> 
</select> 

を私は「選択なし」のテキストを変更しないようにしたいです。 nonSelectedTextオプションを使用してHTMLコードまたはJavaScriptでこれを行うことは可能ですか?

+3

http://knockoutjs.com/documentation/options-binding.htmlは、この質問に答える必要があります。それがないと私はデモを行うことができます私に知らせてください。 –

+1

あなたの助言に感謝ジョンパヴェーク! :) – Dana

答えて

2

実際には、オプションバインディングを読むためにJohn Pavekのアドバイスを取るべきです。ノックアウトはこれに特化した優れたツールを提供しており、あなたの制作にはそれらのどれも使用していません。

noneselectedtextは、jQuery-UI multiselect widgetの機能のようです。それを使用している場合は、binding handler for itを使用します。

ここでは、説明する内容の簡単な例を示します。マルチセレクションの内容が選択されているかどうかによってメッセージが変わります。

const vm = { 
 
    optionsCaption: ko.pureComputed(function() { 
 
    return (vm.selectedOptions().length === 0) ? 'Please select at least one' : 'ok'; 
 
    }), 
 
    selectedOptions: ko.observableArray([]), 
 
    Hlist: ko.observableArray([{ 
 
    Id: 1, 
 
    N: 'One' 
 
    }, { 
 
    Id: 2, 
 
    N: 'Two' 
 
    }]) 
 
}; 
 

 
ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 
<div data-bind="text: optionsCaption"></div> 
 
<select data-bind="options: Hlist, optionsText: 'N', optionsValue: 'Id', selectedOptions: selectedOptions" multiple="multiple"> 
 
</select> 
 
<div data-bind="foreach: selectedOptions"> 
 
    <div data-bind="text:$data"></div> 
 
</div>

+0

私はそれを行い、それはうまくいったのです。私はoptionsCaptionを使用しました。それはうまくいきました。 – Dana

0

私はあなたがしたいと思うものは、当初は「選択されていない」というフィールドです。ユーザーがオプションを選択すると、テキストが変更されます。あれは正しいですか?はいの場合、これは動作する可能性があります:

<option disabled selected> value>None Selected</option> 
+0

最初はありません。ユーザーがすべてのオプションのチェックを外すたびに、このメッセージが表示されます。 – Dana

+0

これはオプションではありません。オプションがチェックされていないときに表示されるメッセージです。 – Dana

関連する問題