سؤال

أريد تنفيذ وظيفة تغيير كلمة مرور المستخدم. إنه في الأساس شكل مع ثلاثة حقول. معرفات المدخلات الثلاثة 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 للتحقق من صحة كلمة المرور. هذا شيء تريد القيام به عادة على الخادم ، ولديه صفر أمان على أي حال.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top