2017-08-02 13 views
1

結合無効にします。私はこれを行うためにKnockoutjsを使用しようとしていますが、動作しないようです。ここで使用すると、私はチェックボックスがチェックされたときに無効にする入力ボックスを取得しようとしています

は私のhtmlです:ここでは

<input id="input1" type="text" placeholder="Something Here" 
data-bind="disable: makeInvalid"/> 
<input type="checkbox" id="chk1" data-bind="checked: makeInvalid"/> 
<label>Make Textarea Invalid</label> 

は私のjsです:

var viewModel = { 
     makeInvalid : ko.observable(false),   
}; 

ko.applyBindings(viewModel, document.getElementById("chk1")); 

私のフィドルはここにある:

https://jsfiddle.net/devEngine/3ag0881z/2/

私はノックアウトの指示に従うことを試みてきました彼らが言うディスエーブルバインディングはenablとまったく同じです電子ただ逆に、結合:

http://knockoutjs.com/documentation/enable-binding.html

誰も私が間違ってやっているものを私に伝えることができますか?

ご協力いただければ幸いです。

+0

を、それはあなたのフィドルが – Shadowfox

+0

@Shadowfox :-)彼らなしでは動作しません。普通のことですノックアウトはjQuery(他のJavaScriptライブラリも)に依存しません。 – DavidRR

答えて

3

この1つは超簡単修正です。あなたの適用バインディングはid chk1の要素にしか当てられません。オブザーバブルの値は、そのスコープ内でのみバインドされます。単にあなたのko.applyBindingsの第2引数を削除し、それだけで正常に動作します。

var viewModel = { 
 
     makeInvalid : ko.observable(false),   
 
}; 
 
    
 
    ko.applyBindings(viewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script> 
 

 
<input id="input1" type="text" placeholder="Something Here" 
 
data-bind="disable: makeInvalid"/> 
 
<input type="checkbox" id="chk1" data-bind="checked: makeInvalid"/> 
 
<label>Make Textarea Invalid</label>

+0

お返事ありがとうございました。私はそれがどのように機能するかを見ます。後で複数のバインディングエラーを避けるために、明示的に要素を指定する必要がある場合はどうしますか?私はこれらのような多くの要素を自分の形で持っていきます。 – devEngine

+0

申し訳ありませんが、私はそれを得たと思う - ちょうど専用のdivでラップします。再度、感謝します! – devEngine

+0

あなたはdivの中でそれをラップ、またはビューモデルとしてオブジェクトをspecifiyする結合 'WITH'を使用することができます。 (必要な場合は、他のビューと対話することができますので、私は 'WITH'を好む。) –

1

あなたのjsFiddleからノックアウトが欠落しています。

これは ko.applyBindings(viewModel, document.getElementById("chk1"));間違っています。入力とチェックボックスにバインディングを適用する必要があります。 ko.applyBindings(viewModel);

jsFiddle作業を参照してください:ノックアウトはjQueryを使って組み合わせて使用​​することができますが、あなたのフィドルにjqueryの&ノックアウトファイルを追加し、また https://jsfiddle.net/3ag0881z/4/

+0

ははるかに高く評価 - どうもありがとうございました! – devEngine

関連する問題