summaryrefslogtreecommitdiffstats
path: root/portal/src/main/webapp/extsys/nfvo/js/nfvo-validate.js
blob: 1ed51d697bc3f863896146f835762ad006ed75d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
/*
 * Copyright (C) 2019 Verizon. All Rights Reserved
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
$(function () {
    var form = $('#vnfm_form');
    var error = $('.alert-danger', form);
    var success = $('.alert-success', form);

    form.validate({
        doNotHideMessage: true, //this option enables to show the error/success messages on tab switch.
        errorElement: 'span', //default input error message container
        errorClass: 'help-block', // default input error message class
        focusInvalid: false, // do not focus the last invalid input
        rules: {
            name: {
                required: true,
                maxlength: 20
            },
            type: {
                required: true,
                maxlength: 20
            },
            version: {
                required: true,
                maxlength: 20
            },
            vendor: {
                required: true,
                maxlength: 20
            },
            url: {
                required: true,
                url: true
            }
        },
        messages: {
            name: {
                required: $.i18n.prop("nfv-ems-iui-validate-name")
            },
            type: {
                required: $.i18n.prop("nfv-ems-iui-validate-type")
            },
            version: {
                required: $.i18n.prop("nfv-ems-iui-validate-version")
            },
            vendor: {
                required: $.i18n.prop("nfv-ems-iui-validate-vendor")
            },
            url: {
                required: $.i18n.prop("nfv-ems-iui-validate-url-required"),
                url: $.i18n.prop("nfv-ems-iui-validate-url")
            }
        },
        errorPlacement: function (error, element) { // render error placement for each input type
            error.insertAfter(element); // for other inputs, just perform default behavior
        },
        invalidHandler: function (event, validator) { //display error alert on form submit   
            success.hide();
            error.show();
        },
        highlight: function (element) { // hightlight error inputs
            $(element).closest('.form-group').removeClass('has-success').addClass('has-error'); // set error class to the control group
        },
        unhighlight: function (element) { // revert the change done by hightlight
            $(element).closest('.form-group').removeClass('has-error'); // set error class to the control group
        },
        success: function (label) {
            label.addClass('valid') // mark the current input as valid and display OK icon
                .closest('.form-group').removeClass('has-error'); // set success class to the control group
        },
        submitHandler: function (form) {
            success.show();
            error.hide();
            //add here some ajax code to submit your form or just call form.submit() if you want to submit the form without ajax
        }
    });
});