12

我正在使用 WordPress Ninja Forms,并且正在尝试创建一个表单预览,在通过 Ajax 发送数据之前必须接受该预览。这意味着我需要在表单验证和提交过程之间添加自定义 JS 代码。

到目前为止,我尝试了以下方法:

var form_id = 1;
var PreviewFormController = Marionette.Object.extend({

  initialize: function() {
    Backbone.Radio.channel( 'form-' + form_id ).reply( 'maybe:submit', this.PreviewForm, this, form_id);
  },

  PreviewForm: function(formID){

    var formModel = nfRadio.channel( 'app' ).request( 'get:form', formID );

    if(formModel.getExtra('previewOk')){
      return true;
    }
    this.ShowPreview( formModel );
    return false;
  },

  ShowPreview: function(formModel){
    if(confirm("You sure?")){
      nfRadio.channel( 'form-' + form_id).request( 'add:extra', 'previewOk', true );
      nfRadio.channel( 'form-' + formModel.get( 'id' ) ).request( 'submit', formModel );
    }
  }
});

$(function(){
    new PreviewFormController();
});

问题是PreviewForm现在出现在字段验证之前。字段验证如何挂钩函数?

我有点迷茫,因为 Codex 似乎还没有准备好。如果有人可以在那里帮助我,我会很高兴..

4

1 回答 1

0

我相信你想用这个

initialize: function() {
    this.listenTo( Backbone.Radio.channel( 'forms' ), 'init:model', this.PreviewForm );
},
于 2021-04-06T18:18:32.220 回答