0

设置:我为过去工作过的一家小公司构建了一个 asp.net 复合控件库。我还构建了一个通用的 jquery 验证库(没有使用 jquery 验证插件,因为它对我们正在做的事情来说太过分了)。在控件项标记本身中,开发人员可以添加类似“RequiredField='true'”和/或“DataValidation='Date'”的属性来执行适当的验证。在复合控件的渲染方法中,我将 REQUIRED 和 DATEVALIDATOR 等类添加到文本框的 cssclass 列表中。在 document.ready 方法中,我查找这些特定类并将文本框的 onchange 事件与该控件相关联。

问题:这和现在一样很好用,但我有两个问题:1)我不太习惯将渲染输入标记的类属性用于与 CSS 无关的东西,但我也不确定我还能把它放在哪里,让标记仍然是有效的 HTML。还有另一种方法可以进行此客户端验证吗?

2)这只是#1的补充,但我想将正则表达式验证作为属性选项添加到控件,但我不喜欢使用当前方法将jquery验证逻辑与css类相关联的想法这样做,所以我更喜欢其他方式,我可以标记呈现的输出,以便我的通用 jquery 可以拾取它并知道要对其进行什么验证。

任何建议都会非常有帮助和感激!

4

1 回答 1

0

与类相关联很好,即使它在技术上不是 CSS 类。另外,您是否考虑过数据属性标签?虽然它们是 HTML5,但我已经使用它们来分配元数据并使用数据属性而不是数量可笑的类。例如,您可以向控件添加 data- 属性:“data-required=”和“data-date-validator=”,然后您可以相应地设置值并将空值视为 false。通过这种方式,您可以将一堆这些数据属性附加到一个元素以读取特定信息。

例子:

$(function () {
    // isRequired would == true
    var isRequired = $("#container").attr("data-required");
});
于 2012-12-20T21:35:33.513 回答