הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   הגבלת תווים ב-TEXTAREA (https://hosts.co.il/forums/showthread.php?t=54751)

DiXXOver 07-10-07 09:10

הגבלת תווים ב-TEXTAREA
 
שלום,

אני רוצה להגביל תווים בתיבת טקסט, חיפשתי בפורום ולא מצאתי פתרון.
אני עובד עם PHP אבל אשמח לדעת איך מגבילים את זה בשביל המשתמש ב-HTML.
כאילו שהמשתמש לא יוכל לרשום מעל 10 תווים, שפשוט לא יתן לו.

תודה.

רומן 07-10-07 09:19

זה ב js, אני לא מכיר דרך אחרת...

<script language='javascript'>
function tcheck()
{
if(document.formname.Textareaname.value.length >= '20')
{
alert('ישנה מגבלה של 20 תווים');
document.formname.submit.focus();
}
}
</script>


זה הקוד של הטקסט

<textarea onkeypress='tcheck();' >Text</textarea>

רומן 07-10-07 09:21

הנה דרך טובה יותר
קוד:

<script type="text/javascript">


function ismaxlength(obj){
var mlength=obj.getAttribute? parseInt(obj.getAttribute("maxlength")) : ""
if (obj.getAttribute && obj.value.length>mlength)
obj.value=obj.value.substring(0,mlength)
}

</script>

קוד:

<textarea maxlength="10" onkeyup="return ismaxlength(this)"></textarea>
את הכמות המקסימלית בדוגמא הזאת אתה משנה בקוד של הטקטס איפה שכתוב 10.

Elad-A 07-10-07 14:57

אם אתה רוצה ב PHP, אפשר לעשות ככה:

PHP קוד:


$textarea 
$_POST['textarea'];
$length strlen($textarea);
$max_chars 10;

if(
$length $max_chars) echo 'some error...'


somebody 07-10-07 16:35

ציטוט:

נכתב במקור על ידי Elad-A (פרסם 564217)
אם אתה רוצה ב PHP, אפשר לעשות ככה:

PHP קוד:


$textarea 
$_POST['textarea'];
$length strlen($textarea);
$max_chars 10;

if(
$length $max_chars) echo 'some error...'


ציטוט:

בשביל המשתמש ב-HTML.
הוא אמר שהוא רוצה ב HTML(JS), ככה שלא ניראה לי שהוא שאל ב PHP, חוץ מזה שאין סיכוי שהוא לא יודע ב PHP, זה הבסיס של הבסיס...

חוץ מזה, שכל מי שנתן פה קודים, בפעמים הבאות נא להימנע מנתינת קודים מוכנים.
אפשר להסביר במילים/לתת קוד, אבל להסביר אותו.

Daniel 07-10-07 17:08

אני רק רוצה להעיר לגבי הרעיון, באופן כללי. מה שעשית זה בזבוז משאבים. לוקח פחות משאבים(יותר יעיל) ויותר "פשוט",
במקום,
PHP קוד:

$textarea $_POST['textarea'];
$length strlen($textarea);
$max_chars 10;

if(
$length $max_chars) echo 'some error...'

אפשר לעשות,

PHP קוד:

$textarea $_POST['textarea'];
$max_chars 10;

if(isset(
$textarea{$max_chars}) echo 'some error...'


sagi_b 07-10-07 17:47

MasterT, אני רק רוצה להעיר שבאופן כללי, המנעות משכפול הטקסט של תיבת הבחירה בשורה הראשונה תחסוך הרבה יותר משאבים..

וברצינות - הזמן שלקח לך לרשום על האופטימיזציה הזו הוא יותר מהזמן שהמחשב הכי איטי שנמכר היום יחסוך אם יריץ את הגרסה הלא-אופטימלית 100 פעמים בשניה במשך שנה (טוב, אתם מבינים את הרעיון). ואגב, בכלל לא בטוח שהגרסה שלך יותר יעילה, בגלל הדרך שמחרוזות עובדות ב PHP.

מה שכן בטוח זה שהגרסה שלך פחות קריאה ומזמינה יותר בעיות (למשל - הקוד שלך לא יעשה מה שאתה רוצה ממנו באתר שהוגדר לעבודה עם UTF8).

DiXXOver 07-10-07 18:42

ציטוט:

נכתב במקור על ידי somebody (פרסם 564269)
הוא אמר שהוא רוצה ב HTML(JS), ככה שלא ניראה לי שהוא שאל ב PHP, חוץ מזה שאין סיכוי שהוא לא יודע ב PHP, זה הבסיס של הבסיס...

חוץ מזה, שכל מי שנתן פה קודים, בפעמים הבאות נא להימנע מנתינת קודים מוכנים.
אפשר להסביר במילים/לתת קוד, אבל להסביר אותו.

צודק, ב-PHP אני יודע לעשות את זה, רציתי להגביל את התיבת הטקסט בצד הלקוח, אם כך זה נקרא.
כמו ב-תיבת הטקסט הרגילה שיש
maxlength="30"
ואז הוא לא נותן לכתוב יותר, הקוד שהכי התאים לי הוא של רומן ב-JS.

תודה לכולם.


כל הזמנים הם GMT +2. הזמן כעת הוא 20:19.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ