我有一个记住我的登录页面复选框,全部在jQuery Mobile中。我也在使用KnockoutJs。
我有一个定义如下的模型:
MOX.Login = function()
{
var self = this;
self.Username = ko.observable("");
self.Password = ko.observable("");
self.IsRememberMe = ko.observable(true);
}
在我的viewmodel中,我执行以下操作:
self.Login = ko.observable(new MOX.Login()); //login data
我对这个对象没有别的办法。
复选框的html如下:
<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。初始化后总是如此。怎么样?
答案 0 :(得分:0)
它可能与您的MOX
命名空间或您未发布的其他代码有关。检查此simple fiddle - 您在此处列出的所有问题均未发生。
答案 1 :(得分:0)
要检查的另一件事是确保您的复选框实际上没有渲染,只是没有移位,所以你看不到它。在复选框上呈现动态元素后,Jquery移动版需要具有新属性。我会将复选框设置为data-enhance =“false”,以确保这不是冲突。