2012-06-21 7 views
0

나는 텍스트 상자의 몇 가지가 있습니다, 그들을 전환과 같이 현지 & 외국 전화 번호와 체크 박스 :KnockoutJS 관찰

TogglePhoneFields = function(isForeign) { 
    if (isForeign) { 
     $('#Phone_LocalNumber').attr('disabled', 'disabled'); 
     $('#Phone_LocalNumber').val(''); 
     $('#Phone_ForeignPhoneNumber').removeAttr('disabled'); 
     return $('#Phone_ForeignPhoneNumber').focus(); 
    } else { 
     $('#Phone_LocalNumber').removeAttr('disabled'); 
     $('#Phone_ForeignPhoneNumber').attr('disabled', 'disabled'); 
     return $('#Phone_ForeignPhoneNumber').val(''); 
    } 
    }; 

마크 업 :

<input data-bind="value: localnumber" 
    id="Phone_LocalNumber" type="text" value='' /> 

<input data-bind="checked: isForeignPhoneNumber" 
    id="Phone_IsForeignPhoneNumber" type="checkbox" value="true" /> 

<input data-bind="value: foreignphonenumber" 
    id="Phone_ForeignPhoneNumber" type="text" value="" /> 

그리고 나는 지역 전화 번호에 값을 입력 한 후 TogglePhoneFields (true)를 호출하는 "IsForeign"체크 상자를 체크하고이를 해제하면이 수치에 대한 유효성을 확인합니다. 관측 값 개간되지 않았다..

설명이 어려워서 명확하지 않은 경우 jsFiddler를 작성할 수 있습니다. 질문은 기본적으로 자바 스크립트 코드로 값을 조작 할 때 관찰 가능 항목을 업데이트하는 방법은 무엇입니까?

답변

2

녹아웃 값 바인딩은 바인딩 된 입력에서 이벤트를 변경하기 위해 구독합니다. val을 사용하여 jquery의 입력을 업데이트하면 변경 이벤트가 발생하거나 값 바인딩이 트리거되지 않습니다.

그래서 예를

에 대한
$('#Phone_LocalNumber').val('').change(); 

희망이 도움이됩니다.