التحقق من صحة كلمة مرور jQuery Ajax
-
23-09-2019 - |
سؤال
أريد تنفيذ وظيفة تغيير كلمة مرور المستخدم. إنه في الأساس شكل مع ثلاثة حقول. معرفات المدخلات الثلاثة oldpassword
, newPassword
و newPasswordAgain
.
عندما فقد المستخدم تركيز إدخال OldPassword أو إرسال النموذج ، أريد التحقق من قاعدة البيانات ، لمعرفة ما إذا كان قد تم إدخال OldPassword بشكل صحيح. كيف يمكنني تحقيق ذلك باستخدام التحقق من صحة jQuery؟
أضيف قاعدة مخصصة مثل هذا:
$.validator.addMethod("checkOldPass",function (value ,element) {
var validPass = false ;
$.post("/SMS/admin/users/checkOldPass.do" , {"empId":empId , "oldEmpPass":$.md5(value)},function (data) {
var msg = eval('('+data+')');
if(msg.resultFlag == 1) {
validPass = true ;
}
});
return validPass ;
} , "error!");
لكن المشكلة هي ، قبل إرجاع طريقة النشر الخاصة بي بعلم نتيجة ، تم الانتهاء بالفعل من الطريقة ، لذلك أحصل دائمًا على رسالة الخطأ. أعلم أن التحقق من صحة jQuery له طريقة عن بُعد ، لكن لا يمكنني استخدامه ، لأنني أستخدم المكون الإضافي Struts2-JSON ، وتغلف نتيجة JSON دائمًا في كائن ، وتحتاج الطريقة عن بُعد إلى نتيجة JSON منطقية. لا يمكنني أن أكون صحيحًا أو خطأ من النتيجة مباشرة.
المحلول
يمكنك الاستخدام $.ajax
وحدد async:false
: http://api.jquery.com/jquery.ajax/
سينتظر هذا المكالمة لإكماله ، وحظر صفحتك.
ومع ذلك ، لست متأكدًا من أنك ستستخدم JavaScript للتحقق من صحة كلمة المرور. هذا شيء تريد القيام به عادة على الخادم ، ولديه صفر أمان على أي حال.