2009-09-16 93 views
2

我有以下HTML情形:添加jQuery的条件验证,以动态地生成的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> 

如果复选框Ñ被检查,那么文本框Ñ是必填字段。

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

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

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

回答

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; 
} 

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

1

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

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

善良,