اذهب إلى المحتوى

السؤال

نشر

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

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

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

Recommended Posts

  • 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

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...