2016-04-14 11 views
3

をテキスト値を取得します。私のJavaScriptで私は様々な画像カテゴリのドロップダウン持ってノックアウトドロップダウンから

<select class="form-control" data-bind="options: imageCategoryList, value: 'Category', optionsCaption: --Select Category--, optionsText: &#39;Category&#39;, optionsValue: 'Category', event: {change: GetImages}" id="Category" name="Category"></select>

、私はそのドロップダウンリストで選択されているもののテキスト値を取得しようとしているが、しかし、私はそれを行う方法がわかりません。私のviewModelでは、私は

var img = self.imageCategoryList().Text 

ですが、 "undefined"しか返しません。選択したテキスト値を取得するにはどうすればよいですか?

ありがとうございます!

答えて

1

...

の作業フィドル: http://jsfiddle.net/bPP5Q/33/

ビュー...

<select class="form-control" data-bind=" 
    options: imageCategoryList, 
    value: selectedCategory, 
    optionsCaption: '--Select Category--', 
    optionsText: function(item){ return item.Category }, 
    event: {change: getImages}" 
id="Category" name="Category"></select> 

とのviewmodel ...

jQuery(function ($) { 
    // this runs after the window loads 
    var ViewModel = function (data) { 
    var self = this; 

    self.imageCategoryList = ko.observableArray([ 
     { 
     Category: 'A', 
     Text: 'CategoryA' 
     }, 
     { 
     Category: 'B', 
     Text: 'CategoryB' 
     }, 
     { 
     Category: 'C', 
     Text: 'CategoryC' 
     } 
    ]); 

    self.selectedCategory = ko.observable(); 

    self.selectedCategory.subscribe(function(newValue) { 
     console.log(newValue.Text); 
    }); 

    self.getImages = function(){}; 
    } 


    var vm = new ViewModel(); 

    ko.applyBindings(vm); 

}); 
+0

私はあなた(私は十分な評判がない)をアップアップすることはできませんが、ありがとうございます! – heztet

+0

'console.log(newValue.Text);を' var txt = newValue.Text'のようなものに置き換えると、txtの定義されていないエラーが出ます。他の場所で使用するselectedCategoryのテキストを記録するにはどうすればよいですか? – heztet

+1

これはあなたの変数のスコープにすぎません。それをtxtの代わりにself.newTextValueに割り当てて、別の場所にアクセスできるかどうか確認してください。 –

2

選択したオプションを観測対象にバインドする必要があります。 スヨンは、モデルにあなたが作成します。

self.selectedCategory = ko.observable(); 

とで

あなたの選択
<select class="form-control" data-bind="options: imageCategoryList, value: selectedCategory, optionsCaption: --Select Category--, optionsText: 'Category', optionsValue: 'Category', event: {change: GetImages}" id="Category" name="Category"></select> 

そして、あなたのJavaScriptでは、あなたは、これはテストされていません

var img = modelObject.selectedCategory(); 

のようにアクセスすることができますが、それはスタートです。私は、これはあなたがここで達成しようとしているものかもしれないと思う

+0

'modelObject'とは何ですか?私は未定義のエラーが発生しています。 – heztet

関連する問題