我是KnockOutJs的新手,我有这个问题。 这是我的简单表单,只有在单击按钮时才执行Login功能。但是,当页面加载而没有用户单击它时,将执行该功能。 我该如何解决?
$().ready(function() {
function ViewModel() {
var self = this;
self.username = ko.observable();
self.password = ko.observable();
self.Login = function() {
console.log('do login');
};
}
ko.applyBindings(new ViewModel());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.2.0/knockout-min.js"></script>
<div class="form-group">
<input type="text" id="username" name="username" data-bind="value:username" placeholder="User Name" />
</div>
<div class="form-group">
<input type="password" id="password" name="password" data-bind="value:password" placeholder="Password" />
</div>
<button type="button" id="btnlogin" data-bind="click:Login()">login</button>
答案 0 :(得分:3)
用以下内容替换按钮行:
<button type="button" id="btnlogin" data-bind="click:Login">login</button>
您正在创建DOM创建的Login方法,删除括号将等待触发click事件。