3

我需要对动态控件使用 jquery 验证。我尝试过,但我无法实现。帮我解决这个问题。

意见:

<script type="text/javascript">
    $(document).ready(function () {
        var count = 0;
        $("#dynamicControlForm").validate();
        $("#AddControls").click(function () {
            count++;
            var elements = "<input type='text' id='txt" + count + "'class='rec'/><br/></br>";
            $(elements).appendTo("#dynamicControlForm");
            $(".rec").each(function () {
               $(this).rules("add", {
                required: true,
                messages: {
                    required: "Required field"
                }
            });
            });
        });
    });
</script>
<div id="DynamicControlsContainer">
    <input type="button" name="CreateControl" value="AddControl" id="AddControls" />
    <form action="/" method="post" id="dynamicControlForm">
    <input type="submit" name="DynamicControl" id="btnDynamicSubmit" value="Submit" />
    </form>
</div>
4

1 回答 1

0

您的代码非常接近。

但是,动态创建的元素name中缺少该属性。input

jQuery Validate 插件要求所有要验证的数据输入元素都必须具有唯一的name属性。

这有效...

$(document).ready(function () {

    $(document).ready(function () {
        var count = 0;
        $("#dynamicControlForm").validate();
        $("#AddControls").click(function () {
            count++;
            var elements = "<input type='text' id='txt" + count + "' name='txt" + count + "' class='rec'/><br/></br>";
            $(elements).appendTo("#dynamicControlForm");
            $(".rec").each(function () {
                $(this).rules("add", {
                    required: true,
                    messages: {
                        required: "Required field"
                    }
                });
            });
        });
    });

});

工作演示:http: //jsfiddle.net/sVFgK/

于 2013-08-27T15:00:04.360 回答