Я новичок в KnockoutJS, и я хотел бы сериализовать текущую форму, но когда я console.log сериализует форму, она пуста.Knockout.js: как получить текущую форму?
Как я могу обратиться к текущей форме?
Вот мой DOM:
<form data-bind="submit: onSubmit">
<input type="text" data-bind="value: firstName">
<input type="text" data-bind="value: lastName">
<button data-bind="click: capitalizeLastName">Go caps</button>
<input type="submit" value="submit">
</form>
Вот код JS:
$(document).ready(function() {
function AppViewModel() {
var self = this;
self.firstName = ko.observable("Bert");
self.lastName = ko.observable("Bertington");
self.fullName = ko.computed(function() {
return self.firstName() + " " + self.lastName();
}, self);
self.capitalizeLastName = function() {
var currentVal = self.lastName(); // Read the current value
self.lastName(currentVal.toUpperCase()); // Write back a modified value
};
self.onSubmit = function(form) {
// alert(self.firstName()) ;
console.log($(form).serialize()) ;
}
}
// Activates knockout.js
ko.applyBindings(new AppViewModel());
});
Это звучит как проблема [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem) - почему вы хотите сериализовать форму, когда данные должны все уже присутствуют в вашей модели с нокаутом? Какова ваша конечная цель здесь? –
Я работаю с фреймворком PHP, в котором я размещаю сериализованную форму. Затем сериализованная форма автоматически воссоздается по методу ajax сервера. Вот почему я хочу сериализовать текущую форму и не получить доступ непосредственно к viewmodel. –