在淘汰赛后重置表单值

Resetting form value in knockout after post

本文关键字:表单 淘汰赛      更新时间:2023-09-26

我目前正致力于在发布后将表单重置为默认初始值。我已经尝试和工作,并提出了解决方案如下,但它变得繁琐和重复的形式领域的增长。因此,我正在寻找一个更通用的解决方案,能够将表单重置为初始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
      }
    })
}

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

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
      }
    });
}