type = "password"の入力フィールドがブラウザのauto-fill-modeによって入力された場合、パスワードの監視可能な値は常に未定義です。ユーザー名フィールドに最初の文字を入力し、ドロップダウンリストから名前を選択するだけです。パスワードフィールドはブラウザによって入力されます。
<script type="text/javascript">
$(document).ready(function () {
var viewModel = function () {
var self = this;
self.UserName = ko.observable();
self.Password = ko.observable();
self.Submit = function () {
var un = self.UserName();
var pw = self.Password(); // Password value is undefined!!!!
alert(pw);
};
};
ko.applyBindings(new viewModel());
});
</script>
<form id="LoginForm" data-bind="submit: Submit">
<fieldset>
<label for="UserName">Username</label>
<input id="UserName" data-bind="value: UserName" name="UserName" type="text" />
<label for="Password">Password</label>
<input id="Password" data-bind="value: Password" type="password" />
<button type="submit">Login</button>
</fieldset>
</form>