代码之家  ›  专栏  ›  技术社区  ›  Richard Ev

向动态生成的HTML添加jquery条件验证

  •  2
  • Richard Ev  · 技术社区  · 15 年前

    我有以下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 是强制字段。

    我刚开始和A(the?)合作。 jQuery validation 模块和我正试图找出如何实现这种验证,这似乎比示例要复杂一些。

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

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   Daniel Elliott    15 年前

    我也做过类似的事,理查德。尽管我没有遵守海关规定。我的方法是将类“必需”添加到输入标记中。

    就您的选择器而言,您不能让您的文本框和输入“share”一个对它们来说是class0的类。classn并在该类中选择一个输入?

    仁慈,

        2
  •  1
  •   Richard Ev    15 年前

    已解决,使用以下方法…

    我更新了我的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;
    }
    

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