使用Jquery验证插件我希望能够在将发布数据发送到服务器之前使用CryptoJS对字段password
和confirm_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);
}
});