发布后重置淘汰中的表单值

时间:2015-09-02 18:07:02

标签: javascript ajax knockout.js

我目前正致力于在发布后将表单重置为默认初始值。 我已经尝试并开始研究并按照以下方式提出解决方案,但随着表单字段的增长,它变得繁琐和重复。因此,我正在寻找一个更通用的解决方案,它能够将表单重置为初始ko.observable值集(无论是否为null),而不重置表单的值,如下所示。希望有人能够帮忙解决这个问题。

function ViewModel() {
  var self = this;
  self.valueA = ko.observable(); // for textbox,textarea.... binding
  self.valueB = ko.observable("Hello"); // for textbox binding
  self.valueC = // json for select option binding
  self.valueD = // json for for checkbox binding
  self.valueE = 3 // selected select option binding
  .....
    
  self.PostForm =  $.ajax({
      type: 'POST',
      data: {},
      complete: {
         self.ValueA(null);
         self.ValueB(null);
         $('#checkbox1').val(3);
         ...
         // turn validation message off
      }
    })
}

1 个答案:

答案 0 :(得分:0)

您可以考虑创建一个模型对象来支持您的表单。重置只需要替换为新实例:

var Model = function(){
    var self = this;
    self.valueA = ko.observable();
    self.valueB = ko.observable(); 
    self.valueC = [];
    self.valueD = [];
    self.valueE = ko.observable(3);
};

function ViewModel() {
  var self = this;
  self.model = ko.observable(new Model());

  self.PostForm =  $.ajax({
      type: 'POST',
      data: {},
      complete: {
         self.model(new Model());
         ...
         // turn validation message off
      }
    });
}