• 1

إظهار رسالة حين إغلاق الصفحة أثناء الكتابة [Javascript]

السلام عليكم،

لدي موقع مبرمج بالـphp و لغات الهيكلة والتصميم والـjs ، لدي عدد من الـinputs مثل الـ(textarea , input=text ... الخ) كيف أعرف بأن المستخدم يريد إغلاق الصفحة ولا يزال هنالك نص في المدخلات لم يتم ارساله أو لم يتم مسحه بالكامل ، ثم اظهر له رسالة بالجافاسكربت بأنه لم يرسل النص هل يريد المغادرة أم البقاء ( Leave or Stay ) ؟

الميزة مبرمجة وموجودة في موقع حسوب I/O وأريد أن أضعها في موقعي، فكيف يتم برمجتها رجاءً؟
وشكراً؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 1

هذه الشيفرة تعمل مع عنصري المدخلات input وtextarea، يجب أن تعمل على أغلب المتصفحات، كتبتها بـES5 -يمكنك أن تعيد كتابتها بـES6 سيكون تنسيقا أفضل فقط- يجب أن تعمل في أي مكان في بيئة المتصفح سواءً قبل التحميل أو بعده:

function checkInputs() {
	var elements = document.querySelectorAll('input, textarea'),
		ei;
	
	for (ei in [].slice.call(elements)) {
		if (elements[ei] && typeof elements[ei].value == 'string' && 
			elements[ei].value.length > 0) {
			return true;
		}
	}
	
	return false;
}

window.addEventListener('beforeunload', function unloadCallback(e) {
	// هذه الرسالة لن تظهر في كل المتصفحات
	var confirmMsg = 'هل أنت متأكد من رغبتك بمغادرة الصفحة';

	if (checkInputs()) {
		// كروم وWebkit القديم
		e.returnValue = confirmMsg;
		
		return confirmMsg;
	}
});

 

تمّ تعديل بواسطة يوسف سيد
querySelectorAll بدلًا من querySelector

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

@يوسف سيد

شكراً لك صديقي يوسف، عمل الكود بنجاح.

تمّ تعديل بواسطة علي أحمد-2
تم التجربة مرة أخرى ونجح الأمر.

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن