jQuery使用运行时控件进行验证

jQuery使用运行时控件进行验证,jquery,jquery-validate,Jquery,Jquery Validate,我有两个日期选择器,用户在其中进行选择。然后,在所选时间间隔内的每一天,我都会添加一个输入文本框。我正在努力让jQuery验证插件为生成的文本框工作。似乎只有第一个被验证了 加载页面时,我添加了一个自定义验证方法,并将表单设置为验证: $(document).ready(function() { $.validator.addMethod("validHoursInDay", function(value, element) { if (this.optional(element)) {

我有两个日期选择器,用户在其中进行选择。然后,在所选时间间隔内的每一天,我都会添加一个输入文本框。我正在努力让jQuery验证插件为生成的文本框工作。似乎只有第一个被验证了

加载页面时,我添加了一个自定义验证方法,并将表单设置为验证:

$(document).ready(function() {
$.validator.addMethod("validHoursInDay", function(value, element) {
    if (this.optional(element)) {
        return this.optional(element);
    }
    var regex = /\d((\.|,)\d)?/;
    var isDecimalNumber = regex.test(value);
    if (isDecimalNumber) {
        var parsedNumber = parseFloat(value.replace(",", "."))
        return parsedNumber >= 0 && parsedNumber <= 24;
    }
    else {
        return false;
    }
});
 $("#aspnetForm").validate({
    debug: true,
    onfocusout: false,
    submitHandler: function(form) {
        submitabscence();
    },
    invalidHandler: function(form, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            var message = 'Got some erros for you';
            $.each(validator.errorList, function(index, value) {
                value.element.style.borderColor = 'red';
            });
            ShowErrorBox(message);
        }
    }

});
});

似乎只有第一个文本框被验证。

jQuery验证插件似乎需要为每个验证的输入指定一个唯一的名称。当执行此验证时,它会正常工作。

您可以粘贴HTML代码吗?另外,您粘贴的第二个代码在哪里?它真的是在创建所有输入后执行的吗?你有没有试过提醒$(“#week overview:input”).length?我能解决它。通过给每个生成的输入一个唯一的名称,问题得以解决!
$("#week-overview :input").each(function() {

    $(this).rules("add", {
        validHoursInDay : true,
        required: true,
        messages: {
            required: "Fill in a number",
            validHoursInDay: "Valid Hours in Day"
        }
    });
});