重置必填字段 - jQuery

时间:2011-05-18 16:05:11

标签: javascript jquery jquery-validate

根据点击的按钮,我需要一些字段。我所看到的行为并不是我所期望的,也不是我想要的。当我单击其中一个按钮时,它会按照我的意愿设置所需的字段,但如果我单击另一个按钮,则由于某种原因它不会重置它们。

代码如下。感谢您提供的任何帮助:

function makeAllRequired() {
        $("#SomeForm").validate({
            rules: {
                StartDate: {
                    required: true,
                    date: true
                },
                Name: {
                    required: true
                }

            },
            errorElement: "div"
        });
    }

    function makeSomeRequired() {
        $("#SomeForm").validate({
            rules: {
                StartDate: {
                    required: true,
                    date: true
                }
            },
            errorElement: "div"
        });
    }

    $(document).ready(function () {
        $("#SomeButtonOne").click(function () {
            makeAllRequired();
            $("#SomeForm").attr("action", "/here/there");
            $("#SomeForm").submit();
        });
$("#SomeButtonTwo").click(function () {
            makeSomeRequired();
            $("#SomeForm").attr("action", "/here/elsewhere");
            $("#SomeForm").submit();
        });
});

2 个答案:

答案 0 :(得分:1)

在设置新的必填项目之前,请尝试重置表单:http://docs.jquery.com/Plugins/Validation/Validator/resetForm

答案 1 :(得分:0)

我不是百分百确定,但在应用新规则之前先尝试删除规则

function makeAllRequired() {
    $("#SomeForm").rules("remove");
    $("#SomeForm").validate({
        rules: {
            StartDate: {
                required: true,
                date: true
            },
            Name: {
                required: true
            }

        },
        errorElement: "div"
    });
}

function makeSomeRequired() {
    $("#SomeForm").rules("remove");
    $("#SomeForm").validate({
        rules: {
            StartDate: {
                required: true,
                date: true
            }
        },
        errorElement: "div"
    });
}