Ненавязчивая проверка jQuery для составного элемента управления html

У меня есть следующий элемент управления, представляющий время:

<div id="xxx">
   <input type="text" name="xxx.hour"/>
   <input type="text" name="xxx.minute"/>
</div>

Поскольку я хочу добавить проверку, я добавил:

<div id="xxx" data-val="true" data-val-time="Time no valid">
   <input type="text" name="xxx.hour"/>
   <input type="text" name="xxx.minute"/>
</div>

И я добавил адаптер и метод:

$.validator.addMethod("time_method", function (val, el, params) {

    var elementId = $(el).attr('id');
    alert('id ' + elementId);
    var hour= $(el).children('input[name$=.hour]').val();
    var minute= $(el).children('input[name$=.minute]').val();

    return hour>= 0 && hour<24 && minute>=0 && minute<23;
});

$.validator.unobtrusive.adapters.add("time", {},
function (options) {
    options.rules["time_method"] = true;
    options.messages["time_method"] = options.message;
});

Но метод time_method никогда не выполняется, я полагаю, потому что jquery.validate применяется только к тегам ввода, я прав?

Как лучше всего это сделать?

ОБНОВЛЕНИЕ: Я знаю это можно сделать несколькими способами, меня просто интересует возможность сделать это таким образом. Я упростил задачу, чтобы показать очень маленький и глупый пример того, чего я пытаюсь достичь.

8
задан Cœur 9 July 2019 в 15:30
поделиться