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

مشكلة .. اريد تكست بوكس لا يكتب به أكثر من 140 حرف

بدأه warning في 27 أكتوبر 2010 · 4 رد · 722 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لدي الكود التالي :

function test()
{
var x=document.getElementById('t').value;
var y=x.length+1;
document.getElementById('l').innerHTML=y;
if(y>140)
{
alert("لا يمكنك الكتابة أكثر من 140 حرف!");

document.getElementById('t').innerHTML=x.substr(0,140);
}
}

ويقوم بمنع المستخدم من كتابة اكثر من 140 حرف , ولكن المشكله عندما يقوم بنسخ 200 حرف مثلا من مستند اخر ولصقه في التكست بوكس فهو يقوم بلصقها كامله , لذا اريد ان امنعه من لصق اكثر ايضاً ويقوم بلصق فقط 140 حرف ويترك الزائد !!

وهنا طريقتي لتعريف التكست بوكس ! ولاحظ اني وضعت ماكس لينث ولكن بدون فائده!

	<textarea id="t" onkeydown="test()" name="find" rows="10" cols="50" style="font-weight: 700" id="find" maxlength="140" ></textarea><br />
#2

استخدم حدث آخر مثل onchange بالاضافة لـ onkeydown :

<textarea id="t" onkeydown="test()" onchange="test()" name="find" rows="10" cols="50" style="font-weight: 700" id="find" maxlength="140" ></textarea><br />
1

logo1.png تطبيق طمأنينة ، نسخة بيتا على أندرويد

عبدالله الشمّري - Al-Shammari

CodingAlone.com

twitter @abshammeri

abshammeri AT gmail.com

github : abshammeri

#3

السلا م عليكم

لدي مشروع وأواجه نفس المشكلة يمكن حل المشكلة جزئيا عن طرق JQuery

<html>
<head>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

<style type="text/css">
	span{
		color:blue;
	}
</style>

</head>
<body>
  <h1>jQuery copy, paste and cut example</h1>
  <form action="#">
  	<label>TextBox : </label>
	<input id="textA" type="text" size="50" 
          value="Copy, paste or cut message here" />
  </form>

  <span></span>

<script type="text/javascript">

$(document).ready(function() {

	$("#textA").bind({
		copy : function(){
			$('span').text('copy behaviour detected!');
		},
		paste : function(){
			$('span').text('paste behaviour detected!');
		},
		cut : function(){
			$('span').text('cut behaviour detected!');
		}
	});

});	
</script>
</body>
</html>

الكود يعمل مع input نوع text وأيضا مع textarea

2
#4

جزاكم الله خيرا

#5

السلام عليكم

توصلت الى هذا الحل وأود مشاركته مع الجميع

كود HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
	<title>TextArea</title>
	<link href="style.css" rel="stylesheet" type="text/css" />
	<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
	<script type="text/javascript" src="script.js"></script>
</head>
<body>

<h1>TextArea</h1>
Message:<br />
<p>You have <span id="char_nbr">300</span> carater(s) left</p>
<textarea id="msg" rows="10" cols="60" maxlength="140"></textarea>
</body>
</html>

كود JavaScript

var t;
var limit = 300;

// Check for the characters limit
function check_limit() {
	// if limit reached => iliminate the addional letters
	if ($("#msg").val().length > limit)
			$("#msg").val($("#msg").val().substring(0, limit));

	$("#char_nbr").text( limit - $("#msg").val().length );
    clearInterval(t);
};


$(document).ready(function() {
	// OnLoad event

	check_limit()
	// KeyUP event
	$("#msg").keyup(function(e) {
		if ($("#msg").val().length > limit)
			$("#msg").val($("#msg").val().substring(0, limit));

		$("#char_nbr").text( limit - $("#msg").val().length );
	})
	// Bind Cut/Past events to TextArea
	$("#msg").bind({
		paste   : function() { t = setInterval("check_limit()" ,200);  },
		cut     : function() { t = setInterval("check_limit()" ,200);  },
	});
})
2

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…