我使用 knockout.js 和映射插件映射了我的表单。我准备将表单保存到 json 并将其发送回服务器。这是我第一次这样做,那么最简单的方法是什么?
这是我目前所拥有的:
// Here's my data model
var viewModel;
$.getJSON('/myJSONdata', function (data) {
viewModel = ko.mapping.fromJS(data);
ko.applyBindings(viewModel);
});
//convert mapped data to json format
var jsonData = ko.mapping.toJSON(viewModel);
// Do something to send the form data in json format back to the server on form submit
<form data-bind="submit: doSomething">
<label for="typeOfIncident">Do you agree?</label>
<label>
<input type="radio" name="doYouAgree" value="Yes" data-bind="value: doYouAgree" checked>
Yes
</label>
<label>
<input type="radio" name="doYouAgree" value="No" data-bind="value: doYouAgree">
No
</label>
<!-- submit button -->
<button type="submit">Submit</button>
</form>
最佳答案
要将您的 View 模型序列化回 JSON,请使用 ko.toJSON(myViewModel)
我还建议阅读此 post .
编辑: 我可能误解了你在这里想要什么,但如果你想通过 View 模型提交,你可以这样做:
var viewModel;
$.getJSON('/myJSONdata', function (data) {
viewModel = ko.mapping.fromJS(data);
viewModel.doSomething = function(){
var jsonData = ko.mapping.toJSON(viewModel);
$.ajax({
type: "POST",
url: '/myJSONdata',
data: jsonData
});
};
ko.applyBindings(viewModel);
});
关于javascript - knockout.js 将表单保存到 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16449387/