我有以下的控制表示時間:jQuery的複合HTML控件unobstrusive驗證
<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.validat e僅適用於輸入標籤,對嗎?
什麼是最好的方法來做到這一點?
謝謝。
更新:我知道這可以通過幾種方式完成,我只是有興趣這樣做的可能性。我簡化了這個問題,展示了我想要實現的一個非常小而愚蠢的例子。
確實,問題在於MVC3在頂層容器上應用了屬性,DIV也獲得了「data- *」屬性。 – vtortola
啊,@vtortola,你在這個問題中沒有提到MVC3。 – sje397
對,因爲問題是關於如何在DIV上執行驗證,所以它與MVC3無關:D – vtortola