Jquery mobile 奇数行为KnockoutJS和jquerymobile复选框

Jquery mobile 奇数行为KnockoutJS和jquerymobile复选框,jquery-mobile,knockout.js,Jquery Mobile,Knockout.js,我有一个带有“记住我”复选框的登录页面,都在jQuery Mobile中。我也在使用KnockoutJs 我有一个定义如下的模型: MOX.Login = function() { var self = this; self.Username = ko.observable(""); self.Password = ko.observable(""); self.IsRememberMe = ko.observable(true); } <label for=

我有一个带有“记住我”复选框的登录页面,都在jQuery Mobile中。我也在使用KnockoutJs

我有一个定义如下的模型:

MOX.Login = function()
{
   var self = this;

   self.Username = ko.observable("");
   self.Password = ko.observable("");
   self.IsRememberMe = ko.observable(true);
}
<label for="chkRememberLogin" data-bind="text: GetLabel('lblRememberLogin')"></label>
<input type="checkbox" id="chkRememberLogin" data-bind="checked: Login().IsRememberMe" />
在我的viewmodel中,我执行以下操作:

self.Login = ko.observable(new MOX.Login()); //login data
我对这个物体没有别的办法

复选框的html如下所示:

MOX.Login = function()
{
   var self = this;

   self.Username = ko.observable("");
   self.Password = ko.observable("");
   self.IsRememberMe = ko.observable(true);
}
<label for="chkRememberLogin" data-bind="text: GetLabel('lblRememberLogin')"></label>
<input type="checkbox" id="chkRememberLogin" data-bind="checked: Login().IsRememberMe" />

我可能认为,由于IsRememberMe属性的默认值设置为true,因此复选框设置为true。当我在具有相同绑定的页面上设置常规复选框时,它被选中。 当我检查该值时,它被设置为true

此外,当我第一次点击复选框时,它保持未选中状态。IsRememberMe的值确实是假的。第二次点击时,该值将更改为true,并且复选框也被选中

如何确保第一次选中复选框


附带问题,当我根据默认值将IsRememberMe设置为false时。初始化后总是这样。为什么会这样?

这可能与您的
MOX
名称空间或您未发布的其他代码有关。选中此复选框-此处没有出现您列出的任何问题。

另一个要检查的事项是确保您的复选框没有实际渲染,只是没有移动,因此您无法看到它。jquerymobile在复选框上呈现动态元素后需要具有fresh属性。我会将复选框设置为data enhance=“false”,以确保这不存在冲突。

您可能需要选中此复选框(因为在使用第三个LIB时,击倒通常需要自定义绑定):@billy Thx,成功了。仍然想知道为什么除了这个复选框,其余的复选框都能正常工作。