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

كيف أصنع عداد تنازلي للنص

بدأه AboMoayad في 2 يوليو 2008 · 13 رد · 1,571 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مثل الذي يوجد في بعض الجرائد ..

انظر أسف الصفحة في هذا الرابط في خانة ( أضف تعليقك )

http://www.okaz.com.sa/okaz/osf/20080517/C...80517195834.htm

ستجد ان هناك جافا تقوم بعد الأحرف

<script language="javascript" type="text/javascript">
	function getcount()
	{
	document.getElementById("lblShow").innerText= document.getElementById("txtMessage").value.length

	}
	</script>

					<asp:TextBox ID="txtMessage" runat="server"  onkeyup="getcount()" Height="90px" TextMode="MultiLine" Width="244px" MaxLength="500" style="vertical-align: middle; text-align: right"></asp:TextBox>

لكن العداد ليس تنازلي بل تصاعدي وأنا أريده تنازلي مثل المنتشر على صفحات الويب

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#2

ببساطة غير الكود بما يناسب العد التنازلي :

<script language="javascript" type="text/javascript">
	function getcount()
	{
	document.getElementById("lblShow").innerText=65 -  document.getElementById("txtMessage").value.length

	}
	</script>

مع العلم أن 65 هو الحد الأعظمي

#3

جزاك الله خير , ضبط حلك , لكن ..

يستمر العد التنازلي حتى يدخل في الأرقام السالبة وأنا أريد أن أضبط

الحد الأعلى بإدخال الحرورف مثلا 65

تم تعديل هذه المشاركة بواسطة مبرمج القاعده في 6 يوليو 2008 في 09:24

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#4

السلام عليكم

اخي الكريم مبرمج القاعده احذف الخاصيه

TextMode="MultiLine"

من خصائص Textbox

وان شاء الله يمشي الحال

وكذلك الشكر موصول لاخونا م/ حسام على الافاده

تحياتي

اخوكم

هتان

#5

مؤقت تنازلي + (مبرمج القاعدة) = الواحد تجيه أفكار سينمائية.. :S

#6

وهذا حل اخر مع الاحتفاظ بخاصيه تعدد الاسطر

ويطلع رساله وحركات

-------------------------------------------------------------------------------------

<body>

<script language="javascript" type="text/javascript">
	function getcount()
	{

	if (document.getElementById("comment").value.length > 20) {

document.getElementById("comment").value= document.getElementById("comment").value.substring(0 , 20);
var msg = "الحد الاقصى 20 حرف";
alert(msg);



	   //document.getElementById("lblShow").innerText= document.getElementById("comment").value.length
}
else{ // Maximum length not reached so update the value of GoYouNote counter


	 document.getElementById("lblShow").innerText = 20 - document.getElementById("comment").value.length;

}


	}



	   </script>


	<form id="form1" runat="server">
	<asp:TextBox ID="comment" runat="server"   Height="90px" onkeypress="getcount()" 
		 Width="658px" 
		style="vertical-align: middle; text-align: right" TextMode="MultiLine"></asp:TextBox>
	<br />
	<asp:Label ID="lblShow" runat="server"></asp:Label>
	</form>
</body>

تحياتي

#7

شكرا للجميع ..

أخي ( Hossein ) ..

قال صلى الله عليه وسلم ( من حسن اسلام المرء تركه ما لا يعنيه )

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#8

لكن هناك ثغرات في هذا الكود حيث يمكن تجاوزه واحداث عملية خطأ في الصفحة

اذا قام المستخدم بنسخ نص اكثر من الحد المطلوب , فما الحل , فلو تلاحظوافي موقع

الجريدة بالأعلى لو حاولت نسخ نص اكثر من الحد المطلوب فإنخ لن سيقوم بعمل

Truncate للنص ولن يستقبل TextBox أكثر من النص المطلوب

فما رايكم في هذه المعضلة

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#9

يا أخي حدد خاصيةMaxlength للعدد الأعظمي الذي تريده :

<asp:TextBox ID="txtMessage"  MaxLength="65"
#10

حددت خاصية MaxLength ومع ذلك ما زالت المشكلة

والمشكلة الثانية انه مع عملية حذف الأحرف لا ينقص العداد

في حين في عملية الكتابة يزيد العداد

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#11

هذه صفحة aspx جاهزة (بدون @Page ) و تعمل تماماً كما طلبت :

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
	<title>Untitled Page</title>
</head>
<body>
	<form id="form1" runat="server">
	<div>
	<script language="javascript" type="text/javascript">
	function getcount()
	{
	document.getElementById("lblShow").innerText=65 -  document.getElementById("txtMessage").value.length

	}
	</script>

	  <asp:TextBox ID="txtMessage" onkeyup="getcount()" MaxLength="65" runat="server" >
	  </asp:TextBox>
	  <asp:Label ID="lblShow" runat="server" ></asp:Label>
	</div>
	</form>
</body>
</html>
#12

الكود كان شغال وكان غطلتي اني كنت وضعت الدالة في حدث OnKeyPress فعدلتها الى OnkeyUp

لكن سلبية الحدث OnKeyUp ان لا يستجيب لحدث مسح الحرف الا بعد رفع عن الزر , بعكس الحدث

OnKeyPress فيمجردالضغط على زر المسح فإنك ترى العداد ينقص في نفس اللحظة ( متزامنا مع الحدث )

لكن سلبيته انه لا يتعامل مع ازرار الدوال Backspace زر المسح او Delete

الشكر الجزيل لك أستاذي حسام ..

تم تعديل هذه المشاركة بواسطة مبرمج القاعده في 9 يوليو 2008 في 09:29

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

#13

ياعم كسر العداد وريح دماغك الناس قالولك كل الطرق الخطأ يبقي من عندك وحاول تبحث انت كمان عشان تقدر تحل مشكلتك مش تعتمد بالاسئلة علي والرد

#14
dream8us كتب:
ياعم كسر العداد وريح دماغك الناس قالولك كل الطرق الخطأ يبقي من عندك وحاول تبحث انت كمان عشان تقدر تحل مشكلتك مش تعتمد بالاسئلة علي والرد

قل خيرا أو أصمت

اللهم أطل عمري وأحسن عملي واختم بالشهادة أجلي

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