Browser 为什么MVC 5水疗中心是;“登录”;页面无法使用保存的密码工作?

Browser 为什么MVC 5水疗中心是;“登录”;页面无法使用保存的密码工作?,browser,knockout.js,knockout-mvc,Browser,Knockout.js,Knockout Mvc,我有一个MVC 5单页应用程序,固定的“登录”页面无法使用保存的密码-验证代码似乎认为字段是空的,即使它们不是: 这有效地防止了用户登录。我在Windows上的Firefox30.0和一些不同Android设备上的默认web浏览器中复制了这一点 从\u Login.cshtml: <div class="form-group"> <label for="LoginUserName" class="col-md-2 control-label">User

我有一个MVC 5单页应用程序,固定的“登录”页面无法使用保存的密码-验证代码似乎认为字段是空的,即使它们不是:

这有效地防止了用户登录。我在Windows上的Firefox30.0和一些不同Android设备上的默认web浏览器中复制了这一点

\u Login.cshtml

<div class="form-group">
        <label for="LoginUserName" class="col-md-2 control-label">User name</label>
        <div class="col-md-10">
            <input type="text" id="LoginUserName" class="form-control" data-bind="value: userName, hasFocus: true" />
        </div>
    </div>
    <div class="form-group">
        <label for="LoginPassword" class="col-md-2 control-label">Password</label>
        <div class="col-md-10">
            <input type="password" id="LoginPassword" class="form-control" data-bind="value: password" />
        </div>
    </div>

这可能是一个问题,也可能是一个浏览器问题,具体取决于您询问的对象。显然,Firefox中的密码自动填充功能不会触发更新淘汰数据绑定的DOM事件

最后,根据GitHub问题的评论,我提出了一个不雅观的解决方案——当单击submit按钮时,使用jQuery强制所有
输入
元素触发
更改
事件的脚本:

<script>
function autoFillHack() {
    $(":input").trigger("change");
}
</script>
我在该页面上只有两个
input
元素,但正如其他人指出的那样,这可能会根据情况产生不良影响

<script>
function autoFillHack() {
    $(":input").trigger("change");
}
</script>
<button type="submit" class="btn btn-default" data-bind="click: login, disable: loggingIn" onclick="autoFillHack();">Log in</button>