javascript - knockout.js 将表单保存到 json

标签 javascript jquery knockout.js knockout-mapping-plugin

我使用 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/

相关文章:

javascript - 如何保存应用了 CSS 滤镜的图像

javascript - 使用 javascript 生成远程 XML,并从网页使用

javascript - 如何选择html元素对象

javascript - 在构造函数变量上定义对象时 JavaScript 中会发生什么

JQuery 不验证 struts2 表单

javascript - 将 Html 存储到数组中,然后将其保存在数据库中并检索该数组 - 显示错误

javascript - 如何使用同位素为 Knockout observableArray 中的项目布置 HTML 元素?

php - Mysql批量插入不插入所有数据

knockout.js - KnockoutJS - 使用条件语句计算出的可观察量如何工作

javascript - 如何在不添加更多 html 的情况下单独切换 foreach div 的 knockout ?