我正在处理一个有两页的表单,技术上是一页,只是隐藏第二页直到第一页完成。我的第一个任务是能够使用 parsley.js 来“验证”第一页,而不包括来自第二页的元素。我这样做了
禁用(通过 attr)第二页上的元素。因此,只有在单击“下一步”按钮时才将项目放在第一个进行验证。
这很好用!不幸的是,在第二页上,在我从元素中 removeAttr('disabled') 之后,欧芹忽略它们并且仍然只验证第一页,从而返回“true”并提交页面而不检查第二个中的任何元素.

谢谢阅读!

最佳答案

好的,所以我想出了这个以防万一将来有人遇到这个问题。

加载第二页后,我销毁了欧芹,然后在重新启用元素后重新添加。

$('.new-account #page1 #next').on('click', function (e) {
    e.preventDefault();
    if ($('#new-account-form').parsley('isValid') == true) {
        $('#new-account-form .hide input').removeAttr('disabled');
        $('.new-account #page1').fadeOut(500, function() {
            $('.new-account #page2').fadeIn(500);
        });
        // destroy
        $('#new-account-form').parsley('destroy');
        // Re-assign parsley to the form to include the second page now
        $('#new-account-form').parsley();

    } else {
        $('#new-account-form').parsley('validate');
    }
});

关于html - 重新启用字段后使用欧芹进行验证,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18768059/

10-12 15:17