Jquery验证 - 在序列化

时间:2017-10-02 23:40:26

标签: jquery forms serialization jquery-validate cryptojs

使用Jquery验证插件我希望能够在将发布数据发送到服务器之前使用CryptoJS对字段passwordconfirm_password进行模糊处理。

以下方法工作正常,因为两个字段的值被CryptoJS哈希(?)替换,然后被发送到服务器。但是,同时密码字段(用户可以在页面上看到的字段)会将哈希填充为一堆额外的星号。因此,如果用户密码为123,则可见字段将更改为等效的哈希值。在查看输入值时,这并未反映在Chromes开发工具中(很奇怪)。我怎么能避免这个?

$('#register-form').validate({
    rules: {
        code: {
            //required: true
        },
        email: {
            //required: true,
            email: true
        },
        username: {
            //required: true,
            minlength: 5
        },
        password: {
            //required: true,
            minlength: 6
        },
        confirm_password: {
            //required: true,
            minlength: 6
        },
        bot_sum: {
            //required: true
        }
    },
    errorElement: 'span',
    errorPlacement: function (error, element) {
        //element.closest('.control-group').addClass('has-error');
        error.addClass('text-danger validation-error');
        error.insertAfter(element);
    },
    submitHandler: function (form) {
        asengine.removeErrorMessages();
        form.elements['password'].value = CryptoJS.SHA512(form.elements['password'].value).toString();
        form.elements['confirm_password'].value = CryptoJS.SHA512(form.elements['confirm_password'].value).toString();
        var data = $(form).serialize();
        register.register_user(data);
    }
});

0 个答案:

没有答案