タイプチェックボックスの入力であるmy asp.net core 2.0/mvc6プロジェクトに要素があります。私はちょうどこのチェックボックスをトグルしながら別の隠し要素の値を変更する方法をテストしていたので、それを動作させることができませんでしたので、クリック結果が何であるかを確認するために表示される単純なjqueryを使用しました。入力タイプのチェックボックスで予期しないjavascriptの動作
Htmlの
<div class="col-xs-7 col-sm-8">
<label class="css-input switch switch-sm switch-success">
<input type="checkbox" id="validation-terms" name="validation-terms"><span></span> I agree to all terms
</label>
</div>
<div class="col-xs-5 col-sm-4">
<div class="font-s13 text-right push-5-t">
<a href="#" data-toggle="modal" data-target="#modal-terms">View Terms</a>
</div>
</div>
@Html.HiddenFor(m =>m.Terms, new { id="register-terms" })
Javascriptを
$用語要素
var $terms = $("#validation-terms");
//toggle the slider when terms modal agree button clicked
$terms.on('click', function() {
if ($terms.is(':checked')) {
//$terms.prop('checked', false);
//$('#register-terms').val(false);
alert("changing to blank");
} else {
//$terms.prop('checked', true);
//$('#register-terms').val(true);
alert("changing to green");
}
});
呼び出したいものは何でも未確認のスライダー(空白、グレー表示でページがロード、ための変数でありますそれはチェックされた属性を追加しない限り通常の動作です)。 チェックボックス(スライダ)をクリックすると、javascriptで検出されないことが確認され、緑色のメッセージに変わることが示されます。その動作は反対です!最初にクリックすると空白に変わるメッセージが表示され、スライダが緑色に変わり、もう一度クリックするとチェック状態(おそらく)になり、緑色のメッセージに変わり、空白に戻ります。
私はここで何が欠けていますか?
ことは、チェックボックスのクリック機能の予想される動作です。このより良いデモのためのフィドルでこの質問を参照してください:https://stackoverflow.com/questions/7031226/jquery-checkbox-change-and-click-event – MUlferts
...クリックイベントはできませんチェックされたプロパティを正しくチェックしていないので、変更イベントを使用する必要がありますか?それはあなたが示したリンクから解釈しているものです。 – dinotom
いいえ、両方ともチェックされたプロパティを同じにチェックします。変更/クリックイベントでは、チェックした値に、チェックした値が表示されます。チェックボックスをチェックすると、$(this)の値がチェックされて表示されます。チェックを外すと、checked = falseと表示されます。変更機能は、現在選択されている値を取得します。 – MUlferts