ビューモデルのviewAttached(DOMロード後)内には、次のものがあります。
viewAttached: function () {
$('.auth-input').keydown(function (e) {
debugger;
var check = auth.showRegistering();
var code = (e.keyCode ? e.keyCode : e.which);
if (code == 13 && auth.showRegistering()) {
alert("trying!");
auth.register();
}
else if (code == 13 && auth.showRegistering() == false) {
auth.logIn();
}
});
},
これは、if ステートメントの背後に隠されているフィールドを除くすべてのフィールドでうまく機能します。
<input data-bind="value: email" class="span2 auth-input" type="text" placeholder="Email">
<input data-bind="value: password" class="span2 auth-input" type="password" placeholder="Password">
<!-- ko if: showRegistering -->
<input data-bind="value: passwordConfirm" class="span2 auth-input" type="password" placeholder="Password Confirm">
<!-- /ko -->
最初の 2 つの入力は DOM の読み込み時に表示されますが、他のフィールドは最初は表示されないため、keydown アクションは認識しているようです。
これは、私が何をしようとしているのかを示すために、フィドルを取り除いたものです:
その3番目の入力でキープレスをキャッチする方法はありますか?