0
Я новичок в KnockOutJs, и у меня есть эта проблема. Это моя простая форма, и я бы выполнил функцию Login только при нажатии кнопки. Однако функция выполняется, когда страница загружается без нажатия на нее пользователя. Как я могу это исправить?KnockoutJs ViewModel function
$().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>
Вы должны удалить '()' в вашей привязке 'click': вы ссылаетесь на этот метод, а не выполняете его. I.e .: 'data-bind =" click: Login "' – user3297291
Вы выполняете 'Login', как только создаются элементы DOM ... поэтому событие предупреждения, не нажимая на кнопку ... – gkb