الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ألية عمل ذر المسح (back space)

بدأه الفيل الطائر في 13 سبتمبر 2010 · 9 رد · 841 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

اقوم حاليا بعمل موقع تعليمى يستخدم بعض اذرار لوحة المفاتيح بحيث عند الضغط على ذر معين يكتب حرف وعند الضغط على ذر معين يمسح حرف او التراجع كما فى برنامج الورد ما اريده هو فكرة المسح او التراجع للذهاب للقيمة السابقه او التى تسبقها وهكذا

فكرت مثلا ان اكون مصفوفه قبل بداية الكتابه ثم عند ادخال كل حرف اضيف قيمه تاليه داخل المصفوفه وعند المسح او التراجع احذف اخر قيمه مضافه للمصفوفه

الشرح

var results=new Array(); results.push("b");results.pop();

السؤال هنا هل توجد طريقه او فكره اسهل اخرى ؟ (بالجافاسكريبت او الجى كويرى)

تم تعديل هذه المشاركة بواسطة الفيل الطائر في 13 سبتمبر 2010 في 06:57

#2

هل تستخدم حقل نصي textbox ام تستخدم textarea

In bad state

#3

ما الفارق يا اخى ؟ استطيع ان استخدم الاثنين وربما سأكتب على <div> للطباعه

#4

الفكرة اخي ساحاول في textarea يمكنك استخدام احداثيات المؤشر عبر ال rang اما بالtextbox لا يمكن وتكون الطريقة فاشلة

بكل الاحوال لو كان المؤشر بالاخر اوالاول امر بسيط عملية قص سلاسل اما لو وجد المؤشر بنصف ال textbox ونريد ان نكتب بها

كيف يمكننا جلب احداثيات محرف المؤشر عند اي حرف

In bad state

#5

اخى الكريم ربما لم اوضح سؤالى كافيا (بعد الشكر)

كل حرف سيدخله المستخدم يمكننى ان اضيفه كعنصر داخل المصفوفه بالامر 

results.push("b")

وبذلك تزداد عناصر المصفوفه مع كل حرف يتم ادخاله 

ما اريده هنا هو طريقه اخرى للتخزين غير المصفوفه الكوكيز ستكثر المثغيرات والتخزين فى ملف نصى غير عمليه ولاتوجد قواعد بيانات مع الجافاسكريبت الى حد علمى  . وما اريده ايضا هو لنقل اننا خزنا . ما الاسلوب الذى نتعامل به مع الذى خزناه (للمسح او التراجع) ؟

وبخصوص قص احداثيات المؤشر ماذا نفعل بعد القص اين التخزين او اسلوب الاحتفاظ (هل ننشئ قيم مخفيه داخل الصفحه hidden values) وماذا بعد ؟

#6

الفكرة ليست باستخدام المصفوفات او التخزين الفكة بكيفية مسح عنصر من input text من المنتصف فكرة المصفوفات صعبة برايي السلاسل افضل string

ولكن نبقى عند مشكلة جلب احداثيات المؤشر من السلسلة اظن انه يوجد شيىء يدل على ذلك واتمنى ممن يعرف ان يشارك لا اريد textarea وانما حصرا input text

اسف على كلمة textbox ولكن الاي اس بي هذه الايام اخذة عقلي :D

In bad state

#7
X-File كتب:

الفكرة ليست باستخدام المصفوفات او التخزين الفكة بكيفية مسح عنصر من input text من المنتصف فكرة المصفوفات صعبة برايي السلاسل افضل string

ولكن نبقى عند مشكلة جلب احداثيات المؤشر من السلسلة اظن انه يوجد شيىء يدل على ذلك واتمنى ممن يعرف ان يشارك لا اريد textarea وانما حصرا input text

اسف على كلمة textbox ولكن الاي اس بي هذه الايام اخذة عقلي :D

لم أفهم المطلوب جيداً أخي عبد

هل هو شيء كهذا مثلاً:

<script>
 	function getcursorindex(input) {
		if (input.createTextRange) {
			var range = document.selection.createRange().duplicate();
			range.moveEnd('character', input.value.length);
			if (range.text == '') 
    			return input.value.length;
			return input.value.lastIndexOf(range.text);
		} 
		else 
		   return input.selectionStart; //just for testing with IE
	}	
	</script>
<input type="text" onblur="alert(getcursorindex(this))" />

ملاحظة : لا تعمل حاليا مع الـ IE :( تحتاج بعض التعديل لتعمل معه فقط اخبرني إن كان هو المطلوب حتى نعمل على تعديلها

إن لم يكن هذا هو المطلوب وضح لنا أكثر بارك الله بك :)

تم تعديل هذه المشاركة بواسطة MoHaMMaD Pro في 14 سبتمبر 2010 في 02:25

1

Everything will be fine when we TALK LESS, DO MORE


#8

هو بذاته :)

صراحة كنت اظنها فقط لل text area

الان

الحل : هو بعمل قص محرف للوراء هل هكذا تريد ؟؟ عند ضغط مربع زر على الشاشة بالفارة يتم مسح محرف للخلف

هل هذا ما تريده اخي الفيل الطائر

In bad state

#9

اشكركم يا اخوان على المساعده واسف للتاخير فى الرد

الفكره جيده بالنسبه لعملية المسح ولكن قد نواجه بعض الصعوبات عند التراجع للخلف او للامام او معا

ولقد وجدت طريقه اسهل من الطريقه التى ذكرتموها وهى مسح اخر حرف


var strLen = myStr.length;
myStr = myStr.slice(0,strLen-1);
alert (myStr);// انا زهقت جد
var myStr = "انا زهقت جدا"; // مربع النص او التكست اريا قيمته

تم تعديل هذه المشاركة بواسطة الفيل الطائر في 17 سبتمبر 2010 في 00:48

#10

اعتقد ان الطريقة الافضل هي التي ذكرتها في مشاركتك مع تعديل بسيط ,

مثلا ...

بعد كل space او حرف معين او مدة زمنية معينة , يقوم البرنامج بتخزين محتوى TextArea او اي عنصر تريده , داخل Stack ( ان لم تسمع بهذه المفهوم من قبل , فهو يتحدث عن مصفوفة خاصة تتميز بانه الذي يدخل فيها اخر شيء يخرج اولا Last In First Out ) , و تستدعي اخر عنصر فيها عند ضغط على زر التراجع .

تم تعديل هذه المشاركة بواسطة ahmad123 في 20 سبتمبر 2010 في 17:56

مواضيع مشابهة