jquery 验证

发布于 2024-12-04 01:57:12 字数 253 浏览 1 评论 0原文

我有一个使用 jQuery Validate 的多页表单。

在第 1 页上,我有一个选择下拉列表,当有人选择某些内容时,它会加载同一页面上其他输入字段的规则。我的问题是,一旦用户提交并转到第 2 页,并决定他需要更改某些内容,并且..他返回到第 1 页,并且某些规则未应用,因此唯一的方法是重新选择选择器来重新应用这些 jquery 验证规则。

我需要确保在页面重新加载时重新应用规则...

我希望这是有道理的,并希望有人有一个简单的快速答案。

I have a multi-page form using jQuery Validate.

On page 1, I have a select dropdown that when someone selects something, it loads rules for the other input fields on the same page. My problem is that once the user submits and goes to page 2, and decides he needs to change something and.. he goes back to page 1 and some of the rules aren't being applied so the only way is to re-select the selector to reapply these jquery validate rules..

I need to ensure that the rules are being reapplied on page reload...

I hope this makes sense and hope someone has a simple quick answer.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

同展鸳鸯锦 2024-12-11 01:57:12

ASP.NET MVC 和部分客户端验证

看一下在它上面。

您可以通过编程方式调用 $('#myform').validate()$('#myform').valid() 来了解表单是否有效并进入下一步。

$(".stepButton").live("click", function() {
    if (isValid(this)) {
        // code to proceed to next step
    }
});

function isValid(el) {
    var $thisform = $(el).parent().parent();
    $thisform.validate();
    return $thisform.valid();
}

ASP.NET MVC and partial client side validation

Take a look on it.

You can call programatically to $('#myform').validate(), and $('#myform').valid() to know if the form is valid and move to the next step.

$(".stepButton").live("click", function() {
    if (isValid(this)) {
        // code to proceed to next step
    }
});

function isValid(el) {
    var $thisform = $(el).parent().parent();
    $thisform.validate();
    return $thisform.valid();
}
燃情 2024-12-11 01:57:12

您可以将所选选项保存在第 2 页的 php 会话中:

session_start();
$_SESSION['yoursession'] = $_POST['option'];

在第 1 页上,您添加一个变量,用于将会话保存在 javascript 中。
使用 json_encode() 正确转义它:

<script type="text/javascript">
    <?php echo 'var option = "'.json_encode($_SESSION['yoursession']).'";';
</script>

因此,如果您转到第 2 页,则会话将使用第 1 页上选择的选项进行设置,如果您返回,会话的内容将保存在变量中。

You could save the selected option in a php session on page 2:

session_start();
$_SESSION['yoursession'] = $_POST['option'];

On page 1 you add a variable that saves the sessions in your javascript.
Use json_encode() to properly escape it:

<script type="text/javascript">
    <?php echo 'var option = "'.json_encode($_SESSION['yoursession']).'";';
</script>

So if you go to page 2 the session is set with the option that has been selected on page 1 and if you go back the content of the session is saved in the variable.

不甘平庸 2024-12-11 01:57:12

您应该使用 2 个表单,每个表单都有不同的 id,并为每个表单声明一组验证规则。
尝试使您的代码适应这一点:

    var validationRules1 = {
        rules: {
            ...
        },
        messages: {
            ...
        }
    };

    var validationRules2 = {
        rules: {
            ...
        },
        messages: {
            ...
        }
    };

    var form1 = $('#form1');
    form1.submit(function () {
        form.validate(validationRules1);
        return form1.valid();
    });


    var form2 = $('#form2');
    form2.submit(function () {
        form.validate(validationRules2);
        return form2.valid();
    });

希望这有帮助

You shall use 2 forms, each one with a different id and declare a set of validation rules for each one.
Try to adapt your code to this:

    var validationRules1 = {
        rules: {
            ...
        },
        messages: {
            ...
        }
    };

    var validationRules2 = {
        rules: {
            ...
        },
        messages: {
            ...
        }
    };

    var form1 = $('#form1');
    form1.submit(function () {
        form.validate(validationRules1);
        return form1.valid();
    });


    var form2 = $('#form2');
    form2.submit(function () {
        form.validate(validationRules2);
        return form2.valid();
    });

Hope this helps

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文