将jQuery条件验证添加到动态生成的HTML中

时间:2009-09-16 12:47:11

标签: jquery asp.net-mvc validation jquery-validate

我有以下HTML方案:

<div>
    <input id="txt0" type="text" /><input type="checkbox" id="chk0" /></div>
<div>
    <input id="txt1" type="text" /><input type="checkbox" id="chk1" /></div>
<!-- etc -->
<div>
    <input id="txtN" type="text" /><input type="checkbox" id="chkN" /></div>

如果选中复选框 N ,则文本框 N 是必填字段。

我刚刚开始使用(?)jQuery validation模块,并试图找出如何实现此验证,这似乎比示例更复杂。

从概念上讲,我认为我想在我的复选框中添加一个CSS类,然后使用addClassRules添加自定义规则。但是,挑战在于如何为每个复选框指定相关的文本框。

我的HTML是使用ASP.NET MVC生成的,所以我可以动态生成为每个复选框指定规则的JavaScript,但这看起来有点啰嗦。

2 个答案:

答案 0 :(得分:1)

我做了类似的事,理查德。虽然我停止了自定义规则。我的方法是在输入标记中添加“必需”类。

就你的选择器而言,你有没有你的文本框和输入“共享”他们独有的类说class0 .. classN并在该类中选择一个输入?

善,

答案 1 :(得分:1)

解决,使用以下方法...

我更新了HTML以将特定的CSS类包含到我的文本框(amount_text_box)中,并使用了以下jQuery:

$.validator.addClassRules("amount_text_box", { required: function(element) {
    var chkId = element.id.replace(/txt/, "#chk");
    return $(chkId)[0].checked;
}

一个限制是,只有当焦点离开文本框时才会触发 - 理想情况下,单击复选框时规则也会触发。