У меня есть следующий элемент управления, представляющий время:
<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 применяется только к входным тегам, я прав?
Как лучше всего это сделать?
ОБНОВЛЕНИЕ: Я знаю, что это можно сделать несколькими способами, меня просто интересует возможность сделать это таким образом. Я упростил задачу, чтобы показать очень маленький и глупый пример того, чего я пытаюсь достичь.