验证循环的元素

时间:2019-05-08 21:45:25

标签: jquery jquery-validate

我正在尝试验证电动汽车应用程序的输入。 用户可能有也可能没有票和意外事件。另外,该系统最多可容纳5个。如果他们对收到引用的问题的回答是“是”,那么将在要求提供的地方显示一些元素:位置,引用日期,收费和罚款。然后有一个按钮,允许他们添加更多输入以填写他们收到的另一张票的详细信息。

对于事故,如果他们对曾经发生过的事故说“是”,则要求他们提供:事故的性质(即正面,后端,翻车),日期,死亡人数,受伤人数以及是否它有危险品泄漏。

如果他们对发生事故或故障单的回答为是,则将第一组元素标记为必填项,然后,如果单击添加按钮,然后为故障单和性质填写另一个位置,则此元素为组标记为必填项。因此,如果用户无法输入某些数据,jquery验证将自动向用户显示他们是必需的,但是我也有一个正则表达式来检查日期是否确实是一个日期以及有关事故的数字规则。

这是我第一次事故和第一张票

$("#theForm").validate({
rules:{
    HadAccident:{
        required:true
    },
    AccidentDate1:{
        dtRegex: /([12]\d{3}[\/-](0?[1-9]|1[0-2])[\/-](0?[1-9]|[12]\d|3[01]))|((0?[1-9]|1[0-2])[\/-](0?[1-9]|[12]\d|3[01])[\/-][12]\d{3})/
    },
    AccidentNature1:{
        required: $('#HadAccidentYes:checked'),
        maxlength: 100
    },
    Fatalities1:{
        required: $('#HadAccidentYes:checked'),
        digit: true
    },
    Injuries1:{
        required: $('#HadAccidentYes:checked'),
        digit: true
    },
    HazMatSpill1:{
        required: $('#HadAccidentYes:checked')
    },
    HadTicket:{
        required:true
    },
    TicketLocation1:{
        required: $('#HadTicketYes:checked'),
        maxlength: 20
    },
    TicketDate1:{
        required: $('#HadTicketYes:checked'),
        dtRegex: /([12]\d{3}[\/-](0?[1-9]|1[0-2])[\/-](0?[1-9]|[12]\d|3[01]))|((0?[1-9]|1[0-2])[\/-](0?[1-9]|[12]\d|3[01])[\/-][12]\d{3})/
    },
    TicketCharge1:{
        required: $('#HadTicketYes:checked'),
        maxlength: 20
    },
    TicketPenalty1:{
        required: $('#HadTicketYes:checked'),
        maxlength: 20
    }
},
messages:{
    HadAccident:{
        required: "Required Field"
    },
    AccidentDate1:{
        required: "Required Field",
        dtregex: "Enter date as mm/dd/yyyy"
    },
    AccidentNature1:{
        required: "Required Field",
        maxlength:  $.validator.format("Maximum {0} characters allowed!")
    },
    Fatalities1:{
        required: "Required Field" 
    },
    Injuries1:{
        required: "Required Field" 
    },
    HazMatSpill1:{
        required: "Required Field"
    },
    HadTicket:{
        required: "Required Field"
    },
    TicketLocation1:{
        required: "Required Field",
        maxlength:  $.validator.format("Maximum {0} characters allowed!")
    },
    TicketDate1:{
        required: "Required Field",
        dtregex: "Enter date as mm/dd/yyyy"
    },
    TicketCharge1:{
        required: "Required Field",
        maxlength:  $.validator.format("Maximum {0} characters allowed!")
    },
    TicketPenalty1:{
        required: "Required Field",
        maxlength:  $.validator.format("Maximum {0} characters allowed!")
    }
}
});

有没有一种方法可以在所有5个可能的元素组中应用正则表达式或数字规则而无需进行硬编码?

0 个答案:

没有答案