私の_Layout.cshtmlに以下のJSがあります。基本的に、すべての「ページ読み込み」では、コードがCookieに設定する必要があるにもかかわらず、チェックボックスはチェックされています(true)。
ページロード時にfalseに設定した場合(例:$("#ShowInactive").prop("checked", false);
)、コードでわかるように、Cookieに基づくClickイベントのチェックボックスの値を設定できます。チェックボックスコントロールはページロード時に値を受け入れません
私は、機能が$(document).ready(function() {
であることを試してみましたが、注目点が異なりました。
<script type="text/javascript">
$(function() {
console.log('1 - ' + Cookies.get('ShouldShowInactive'));
var Inactive = Cookies.get('ShouldShowInactive') == true ? true : false;
$("#ShowInactive").prop("checked", Inactive);
$("#ShowInactive").click(function() {
console.log('2 - ' + Cookies.get('ShouldShowInactive'));
var ShowInactive = this.checked ? true : false;
console.log('3 - ' + ShowInactive);
Cookies.set('ShouldShowInactive', ShowInactive);
console.log('4 - ' + Cookies.get('ShouldShowInactive'));
});
});
</script>
チェックボックスコントロール:
<div class="pull-right checkbox">
<label class="btn btn-success">
@(Html.Kendo().CheckBox().Name("ShowInactive").Label("Show Inactive"))
</label>
</div>
値は常にtrue
またはfalse
として示されている私のConsole.log()
通過とChromeのDev Toolsを使用して、私は、クッキーを点検。また、上記の方法の前に、私はそれをまっすぐに設定しようとしていました。Cookies.get('ShouldShowInactive')
基本的に、チェックボックスはページロード時に常にチェックされ、現在の方法ではチェックされませんでした。どちらの方法もCookieの正しい値を無視します。
に変更します。Cookies.get()関数は文字列またはブール値を返しますか? – tihom
私は 'Inactive' varがとにかくブール値に設定されているので、これは問題ではないと思います=>'? true:false' – TCHdvlp
@TCHdvlp '" true "== true'はfalseを返します – tihom