6

Knockout.js と ASP.NET を使用しています。私のHTMLは次のとおりです。

<div class="InputField">
    Fixed/Floating
    <div class="FieldContainer">
        <select data-bind="options: $root.FixedLoanOptions, selectedOptions: IsFixed, valueUpdate: 'change'" ></select>
    </div>
</div>

ユーザーがマウスを使用して項目を選択すると、JSON が更新された情報と共にサーバーに返されます。ただし、ユーザーが「タブ」を使用して選択コントロールにタブで移動し、アイテムを選択してタブをオフにした場合、選択したアイテムが UI に表示されていても、JSON はこのコントロールに空白の値を返します。

ユーザーがキーボードのみを使用した場合、Knockout ビュー モデルは更新されないようです。ユーザーがマウスを使用したときにブラウザーで特別に発生する変更イベントがあるようです。

どうすればこれを修正できますか? 選択ボックスの onchange イベントを登録して、ノックアウト モデルを手動で更新する関数を使用する方法はありますか?

IE9 と Firefox の両方で試しましたが、両方で同じ問題が発生しました。

4

4 に答える 4

2

コードの残りの部分はどのように見えますか? AJAX 呼び出しはどのように行われますか?

キーボードで選択を変更するこの例は、IE と Firefox で問題なく動作します。

http://jsfiddle.net/mikebridge/yYS7c/2/

于 2012-05-10T18:18:45.367 に答える
0

ライブの例でわかるように、選択オプションが選択されている場合にのみモデルをノックアウト更新します。

  • マウスクリック
  • キーボードの矢印ボタンで選択する後、Enterボタンを押しました。
于 2012-05-10T20:39:14.533 に答える
0

ノックアウトjsがモデルを更新してブラーに変更するときにイベントを変更できます。これはさらにトリガーされます。

<div class="InputField">
    Fixed/Floating
    <div class="FieldContainer">
        <select data-bind="valueUpdate: 'blur', options: $root.FixedLoanOptions, selectedOptions: IsFixed" ></select>
    </div>
</div>
于 2012-05-09T10:18:26.653 に答える