Reputation:
I want to print the value of an input element in console using knockout.
When I try to print that value I am getting "result" instead of the value of the textbox.
var ViewModel = {
name: ko.observable("name"),
company: ko.observable("company"),
submit: ko.observable("Submit"),
onsubmit: function(){
console.log(name);
}
}
ko.applyBindings(ViewModel);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<form>
<label>Name</label>
<input type="text" data-bind="value:name"/>
<label>Company</label>
<input type="text" data-bind="value:company"/>
<button data-bind="click:onsubmit,text:submit"></button>
</form>
Upvotes: 1
Views: 89
Reputation: 2350
You can also do it this way. I like to declare a function for my viewmodel so that later it can be used to initialize another new object.
var ViewModel = function() {
var self = this;
self.name = ko.observable("name");
self.company = ko.observable("company");
self.submit = ko.observable("Submit");
self.onsubmit = function(){
alert(self.name())
console.log(self.name());
};
}
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>
<label>Name</label>
<input type="text" data-bind="value: name"/>
<label>Company</label>
<input type="text" data-bind="value: company"/>
<button data-bind="click: onsubmit, text: submit"></button>
Upvotes: 1