如何在 w2ui 上添加自定义验证?

How to add custom validation on w2ui?

我有两个字段 ReasonDate 和 RegistrationDate。根据业务逻辑RegistrationDate不能早于ReasonDate。我正在签入 'onValidate' 形式的事件处理程序:

onValidate: function(event) {
    var pattern = /(\d{2})\.(\d{2})\.(\d{4})/;
    var reasonDt = new Date(w2ui.form.record.ReasonDate.replace(pattern, '--'));
    var registrationDt = new Date(w2ui.form.record.RegistrationDate.replace(pattern, '--'));

    if (reasonDt > registrationDt) {
        $('#ReasonDate').w2tag('@TranslateText("accard_ReasonDateShouldLessThanRegDate")');
        //$('#ReasonDate').addClass('w2ui-error');
    }
},

然后在单击按钮时我会这样验证:

add: function () {
    $('#BudgOrgTin').removeClass('w2ui-error');
    var errors = w2ui.form.validate(true);
    if (errors.length > 0) {
        return;
    }

如何正确添加我的错误消息,以便在我验证表单时 returns 我的错误也一样?

我在 w2ui 的源代码中找到了解决方案:

onValidate: function(event) {
  var pattern = /(\d{2})\.(\d{2})\.(\d{4})/;
  var reasonDt = new Date(w2ui.form.record.ReasonDate.replace(pattern, '--'));
  var registrationDt = new Date(w2ui.form.record.RegistrationDate.replace(pattern, '--'));

  if (reasonDt > registrationDt) {

     event.errors.push({field: this.get('RegistrationDate'), 
                        error: '@TranslateText("accard_ReasonDateShouldLessThanRegDate")'})

     // **no need for this anymore** w2ui does it for you
     // $('#ReasonDate').w2tag('@TranslateText("accard_ReasonDateShouldLessThanRegDate")');
     //$('#ReasonDate').addClass('w2ui-error');
  }
},