Meteor autoform 添加额外的输入

Meteor autoform add extra input

我想在 AutoForm.hooks after 回调中获取输入值。此输入不是我的模式的一部分,它决定了表单提交后显示的模板(以及其他一些幕后内容)。我在我的自动表单模板中使用纯 html 创建输入。

我试过了

insert: function(error, result, template){
    `$(template.firstNode).parent().find(".my-input").val()` 
}

这似乎为我提供了默认模板 html,而不是实时输入。

获取此输入值的最佳方法是什么?

更新

我试图通过简单地使用 jQuery 并选择输入来获取 after 回调中的输入值。但是,在 after 回调 运行 之前,表单会通过自动表单中的某种方法清除,因此这是不行的。

我最终从 before 回调中全局存储这个值,然后在 after 回调中检查该值。

这看起来仍然是一种老掉牙的做事方式 - 我应该能够以某种方式获取此值,即使我必须使用自动表单以 'special' 方式创建输入。

另一个问题是我可能一次在 DOM 中有多个这种形式,所以我的解决方案在那种情况下不会完全有效。

我想在这种情况下你做错了什么。使用autoform来存储一种'magic'听起来有点奇怪。

是否可以使用例如会话对象并将您的数据存储在那里,或者检查您是否可以通过特殊路由控制器来完成。

AutoForm.addHooks(['wordForm'], {
  after: {    
    insert: function(error, word, template) {
      if(!error){
        url = Router.current().params;
        Router.go('wordsList', {
            languageId: url.languageId, 
            character: url.character});
        Session.set('isModalShown', false);
      }
    },
    update: function(error, word, template) {
      if(!error){
        url = Router.current().params;
        Router.go('wordsList', {
            languageId: url.languageId, 
            character: url.character});
        Session.set('isModalShown', false);
      }
    },
  }
});

在保存后将这种方法用于 open/close 模态,并将此模态 "bind" 用于 URL。

要防止 AutoForm 在提交时清除输入,您可以在自动表单模板上指定 resetOnSuccess=false。然后您可以在挂钩中获取所需输入的值,然后调用 AutoForm.resetForm(formId) 手动清除表单。