PDA

View Full Version : فهمیدن تعداد کاراکتر تایپ شده در textbox و اعمال آپدیت



elham1611
چهارشنبه 17 آذر 1389, 01:50 صبح
با سلام

یک Textbox هست که میخواهم وقتی تعداد کاراکترهایی که کاربر وارد میکند به تعداد مشخصی رسید (مثلا 3 تا) یک Formview به روز بشود.

1- چون از updatepanel استفاده میکنیم و میخواهیم آنی این انتخاب بیافتد نه زمانی که کاربر از textbox خارج میشود پس Autopostback جواب نداد.

اگر فرض کنیم با کد جاوا اسکریپت بتوانیم این تشخصی را بدهیم چه کار باید بکنیم که اسکریپت بفهمد باید یک آپدیت هم انجام شود:لبخندساده:
---------------------------------------------------------------------------------------------------------

توضیح اضافی:
این textbox قیمت رو میگیره و formview با توجه به این قیمت آپدیت میشود. و من میدانم که قیمت مثلا 3 عددی است و نمیخواهم وقتی کاربر تعداد کمتری عدد وارد کرده است formview فورا آپدیت شود

majnun
چهارشنبه 17 آذر 1389, 02:05 صبح
میتونی در رویداد سمت کلاینت چک کنی وقتی شرط درست بود به وسیله جاوااسکریپت و وب سرویس آپدیت کنی

elham1611
چهارشنبه 17 آذر 1389, 02:17 صبح
میشه لطفا مقداری از کدشو بگین. به قول دانشجویان استاد میشه مثال بزنید.

aserfg
چهارشنبه 17 آذر 1389, 07:49 صبح
میتونی در رویداد سمت کلاینت چک کنی وقتی شرط درست بود به وسیله جاوااسکریپت و وب سرویس آپدیت کنی

وب سرویس !! به IIsوب سرویس می گن . احتمالا منظورتون وب سرور بوده

به وسیله جاوا اسکریپت --> آپدیت ؟! به وسیله جاوا اسکریپت کنترل می شه و تعداد کاراکترها خونده می شه بعد از کد بیهایند مقدار این عناصر باز هم با فراخوانی تابعی از جاوا اسکریپت که وظیفه گرفتن مقادیر رو از عناصر با استفاده از tagnema-id,.... داره گرفته و به وب سرور ارسال می کنیم :



elham1611 (http://barnamenevis.org/member.php?74498-elham1611)
سلام ، کد مربوط:

<script type="text/javascript" language="javascript">
function count() {
var ele = document.getElementsByTagName("p")[0];
var txt = document.getElementsByTagName("textarea")[0].value;
var len = 600;
ele.innerHTML = " شما " + txt.length + " کاراکتر تایپ کرده اید و" + (len - txt.length) + " کاراکتر باقی مانده.";
};

</script>و عناصر اچ تی ام ال :

<div style="direction:rtl;text-align:right;">
<textarea cols="50" onkeyup="count()"></textarea>

<p></p>


</div>و اما برای به روز کردن یا همون آپدیت :
برای این کار بهترین روش استفاده از xmlhttprequest است . ولی ذر صورتی که می خواین از ajax toolkit استفاده کنید بایداز عنصر timer استفاده کنید .
برای این کار کد رو به شکل زیر تغییر بدین :

<script type="text/javascript" language="javascript">
function count() {
var ele = document.getElementsByTagName("p")[0];
var txt = document.getElementsByTagName("textarea")[0].value;
var len = 6;
ele.innerHTML = " شما " + txt.length + " کاراکتر تایپ کرده اید و" + (len - txt.length) + " کاراکتر باقی مانده.";
if (txt.length >= len) {
return false;


}

};

</script>

<div style="direction:rtl;text-align:right;">
<textarea cols="50" onkeypress="return count()"></textarea>

<p></p>


</div>
توجه به رویداد داشته باشین اینجا keypress . با این کد تابع count تعداد کاراکترها رو شمرده تا سقف مجاز اینجا شش تا و از ورود تعداد کاراکترهای بیشتر جلوگیری می کنه . و بعد از اتمام تعداد کاراکترها مقدار false رو بر می گردونه . حال شما با استفاده از timer (چک می کنید هر وقت مقدار تابع false شد) عمل update رو انجام می دین .


شاید روش های بهتری باشند ولی چیزی که به ذهن م رسید همین بود .