1

ReasonDate と RegistrationDate の 2 つのフィールドがあります。ビジネス ロジックによると、RegistrationDate を ReasonDate より前にすることはできません。次のような形式の「onValidate」イベント ハンドラをチェックインしています。

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

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

フォームを検証したときにエラーが返されるように、エラーメッセージを正しく追加するにはどうすればよいですか?

4

1 に答える 1

1

w2uiのソースでこれに対する解決策を見つけました:

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

  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');
  }
},
于 2016-10-06T10:56:54.947 に答える