2016-01-13 55 views
1

我有两个字段ReasonDate和RegistrationDate。根据业务逻辑,RegistrationDate不能早于ReasonDate。我在形式上的“的OnValidate”事件,检查是这样的:如何在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) { 
     $('#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; 
    } 

如何正确添加我的错误信息,这样,当我验证表单它也返回我的错误?

回答

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'); 
    } 
}, 
相关问题