いくつかのテキスト ボックスがあります: ローカルおよび外国の電話番号と、それらを切り替えるチェックボックスです。
  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="" />
そして、これらの電話番号を検証したところ、ローカルの電話番号に値を入力した後、「IsForeign」チェックボックスをオンにして ( TogglePhoneFields(true) を呼び出します)、チェックを外すと、観察可能な値がクリアされません。
これを説明するのに苦労しています。まったく明確でない場合は、jsFiddler を作成できます。問題は基本的に、その値がjavascriptコードによって操作されたときに監視可能なアイテムを更新する方法ですか?