2017-01-04 13 views
0

私はknockout jsバインディングで私のHTMLにselectタグを持っています。ノックアウトjs選択されたオプション

<select class="form-control " data-bind="options: loanTimesBorrower, 
    optionsText: loanTimesBorrower(), 
    value: loanTimeBorrower, 
    selectedOptions: loanTimesBorrowerini, 
    optionsCaption: 'Choose dates'"> 
</select> 

の代わりに360日、私は180日として、このloantimeを格納する配列を持っているので、私は、180のようにデフォルト値を表示したい日付を選択するなど

これは配列

self.loanTimesBorrower = ko.observableArray(); 
self.loanTimesBorrowerini = ko.observableArray(self.loanTimesBorrower()[0]); 
です

この配列は、このようにdbからloantimesを取得しているforeachループによって生成されます。

$.each(items.investTimes, function (index, item) { 
    self.loanTimesBorrower.push(item.Loantime); 
}); 

だから私はあなたがこのようにそれを使用することができます代わりに、日付を選択し

+2

なぜあなたはそれを表示したくない場合optionsCaptionパラメータを使用しますか? –

+0

デフォルトで何かを選択したいと思っていますか? 「何も選択されていない」オプションから始めたくなければ、なぜ最初にそれを可能にするのですか? 'optionsCaption'バインディングを追加しないと、nullオプションはありません。 UX上で「選択されていないもの」を追加することは、デフォルト値が存在しないことをユーザに示すために、手動で選択する必要があります。 –

+0

@AlexanderVogtよくそこにいても問題ないと思った。 – FaF

答えて

1

削除 optionsCaption: 'Choose dates' これはデフォルトであなたが提供したオプションになります。

0

のデフォルト値は180として置くことができるかわからないです:あなたが行うことができます

<select id="selectDate" class="form-control " data-bind="options: loanTimesBorrower, 
    optionsText: loanTimesBorrower(), 
    value: loanTimeBorrower, 
    selectedOptions: loanTimeBorrower[0], 
    optionsAfterRender: $root.setDefaultDate"> 
</select> 

そして、あなたのJavaScriptで次のようなものがあります。

self.setDefaultDate= function (option, object) { 
     if (typeof object !== "undefined" && object !== null) { 
      if(object.value === 180) { 
       $("#selectDate").find(option).prop('selected', true); 
      } 
     } 
    }; 

あなたの配列のオブジェクトがどのように見えるかを私に見せたら、答えを編集できますより良いフィット感のために。しかしそれはあなたの道を見つけるのに役立つはずです

関連する問題