2017-10-10 5 views
1

내 드롭 다운 목록에서 선택한 항목을 기반으로 경고 메시지를 트리거하려고합니다.knockout js 드롭 다운 선택한 인덱스가 변경 될 때 이벤트를 트리거하는 방법

우리의 원래 프로젝트에서, 선택된 인덱스가 이미 존재하고 현재 활성화되어 있다면, 선택된 인덱스를 변경하여 검사를 트리거하려고합니다.

HTML :

<select 
    data-bind="options:vmList, 
       optionsCaption: 'Selecting...', 
       optionsText: 'Hello',     
       optionsValue: 'Hello1', 
       value: getSelected">          
</select> 

<span data-bind="text:getSelected"></span> 

뷰 모델 :

$(function() 
{ 
    ko.applyBindings(VM); 
}); 

var VM = 
{ 
    vmList:ko.observableArray([{Hello:"1",Hello1:"2"}]), 
    Hello: ko.observable(), 

    getSelected: ko.observable(), 

    Hello: function() 
    { 
     alert('hello'); 
    } 
} 

내가 this question을 시도했지만 어떤 이유로 일을 일부러.

+0

가능한 중복 (https://stackoverflow.com/questions/12677431/change-observable-value-on-dropdown-change- 녹아웃 - js) – adiga

답변

1

change 이벤트에 바인딩 할 수 있습니다. event: {change: selectedValueChanged} 바인딩. event 바인딩을 사용합니다.

정상적으로 예상 할 수있는 event 속성 대신 Knockout이 컨텍스트를 이벤트 처리기에 대한 매개 변수로 제공한다는 점에 유의하십시오.

$(function() 
 
{ 
 
    ko.applyBindings(VM); 
 
}); 
 

 
var VM = 
 
{ 
 
    vmList:ko.observableArray([{Hello:"1",Hello1:"2"}]), 
 
    Hello: ko.observable(), 
 

 
    getSelected: ko.observable(), 
 

 
    Hello: function() 
 
    { 
 
     alert('hello'); 
 
    }, 
 
    selectedValueChanged: function(context) { 
 
     console.log(context.getSelected()); 
 
     
 
     if(context.getSelected()) { 
 
     alert('You selected: ' + context.getSelected()); 
 
     } 
 
    } 
 
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<select 
 
    data-bind="options:vmList, 
 
       optionsCaption: 'Selecting...', 
 
       optionsText: 'Hello',     
 
       optionsValue: 'Hello1', 
 
       value: getSelected, 
 
       event: {change: selectedValueChanged}">          
 
</select> 
 

 
<span data-bind="text:getSelected"></span>

[드롭 변화 녹아웃 JS에서 관측 값을 변경]의