שלח תשובה

זירת השאלות

630
צפיות
15
תשובות

סקריפט שמחשב און ליין מספרים

,‏ 13 בנובמבר, 2006

שלום,

יש לי טופס , ובו המשתמש יכול לסמן CHECKBOX שלצידם יש מספרים.

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

כלומר אם המשתמש בחר שדה שהערך שקבעתי שבשילו הוא לדוגמה 4
ואחר כך שדה שהערך שקבעתי שבשילו הוא לדוגמה 8
הוא יציג לי בשדה נפרד את הסכום של שניהם

איך עושים את זה בבקשה? יש למישהו מושג?

תודה

תגיות:

15 תשובות

  1. שימי הגיב:

    תשובה
    על כל checkbox תוסיף


    onclick="document.YourFormName.textBox.value=this.value+document.YourFormName.textBox.value;"

  2. שימי הגיב:

    ה ו…
    textBox זה ה name של השדה שאליו אתה רוצה את הערך המחובר

  3. eranep הגיב:

    תודה – אבל יש 2 בעיות:
    בעייה ראשונה – שזה לא מחשב את הסכום של הערכים – אלא מציג אחד אחרי השני:

    כך שאם למשל יש לי שני checkbox שאחד מהם הוא בעל value של 4
    והשני בעל value של 5
    אז זה יציג לי את המספר 45
    ולא 9 – שזה הסכום של שניהם.

    בעייה שנייה:
    כרגע לכל checkbox שיש לי – מוגדר לו מחרוזת טקסט שמתארת אותו ב  VALUE
    (כדי שאני ידע כשהטופס נשלח איזה checkbox בחר המשתמש)
    אז במידה והבעייה הראשונה תיפתר.. איפה אני יכול להגדיר את הערך המספרי של ה CHECKBOX בלי לפגוע במחרוזת הטקסט שנמצאת ב  VALUE  ?

    אני מקווה שהסברתי את עצמי טוב..

  4. שימי הגיב:

    eval()


    onclick="document.YourFormName.textBox.value=eval(this.value+document.YourFormName.textBox.value;)"

  5. eranep הגיב:

    הממ – זה לא עזר
    זה מציג את הערכים אחד במקום השני במקום לחשב אותם

  6. eranep הגיב:

    תיקון:
    זה מציג את הערכים אחד   אחרי    השני במקום לחשב אותם

  7. שימי הגיב:

    תתקן ל


    eval(this.value + '+' + document.YourFormName.textBox.value);

  8. eranep הגיב:

    תיקנתי וזה נותן הודעת שגיאה
    תיקנתי את הפקודה לפי מה שכתבת
    ועכשיו ברגע שאני מסמן טקסטבוקס הוא מקפיץ לי הודעת שגיאה של javascript

  9. שימי הגיב:

    תחסוך לשנינו ו…
    תדביק פה דוגמא מהקוד שכתבת.

  10. eranep הגיב:

    אוקיי דוגמא:


    <form action="test.asp" method="post" name="test" />
    <input value="33" type="checkbox" name="services" onclick="document.test.textBox.value=eval(this.value + '+' + document.test.textBox.value);">Checkbox-1<br>
    <input value="45" type="checkbox" name="services" onclick="document.test.textBox.value=eval(this.value + '+' + document.test.textBox.value);">Checkbox-2<br>
    <input name="textBox" type="text">
    </form>

  11. שימי הגיב:

    בבקשה
    אני מניח שזה מה שרצית.
    הטעות היא כשלא נתת ערך מספרי לtextBox.
    value="0"
    ולכן הדפדפן התייחס אליו כמחרוזת.


    <form action="test.asp" method="post" name="test" />
    <input value="33" type="checkbox" name="services" onclick="mycheck(this);">Checkbox-1<br>
    <input value="45" type="checkbox" name="services" onclick="mycheck(this);">Checkbox-2<br>
    <input name="textBox" type="text" value="0">
    </form>
    <script type="text/javascript">
        function mycheck(x) {
            if (x.checked==true) {
                document.test.textBox.value=eval(document.test.textBox.value + '+' + x.value);
            }
            else {
                document.test.textBox.value=eval(document.test.textBox.value + '-' + x.value);
            }
        }
    </script>

  12. eranep הגיב:

    מעולה תודה -ועוד שאלונת באותו הקשר:
    אני רוצה שמצד אחד ב VALUE של כל CHECKBOX יהיה ערך מספרי אותו אני
    רוצה שהסקריפט שדיברנו עליו יחשב אותו – כמו בדוגמאות האחרונות.

    אבל מצד שני אני מעוניין שכאשר אני ישלח את הטופס – אני יקבל פירוט – לא מספרי ! של מה שהמשתמש בחר.

    אבל יש לי רק value אחד בכל checkbox אז איך ניתן בכל זאת להשתמש מצד אחד בערכים מספריים לצרכי חישובים – ומצד שני לתת תיאור של כל שדה לצרכים של לאחר משלוח הטופס בשביל שאני יוכל לפענח את התוצאות ומה המשתמש בחר

    תודה רבה

  13. שימי הגיב:

    שדה hidden
    אתה יכול להשתמש בשדה חבוי כדי לכלול מידע שאתה לא מעוניין שהמשתמש יראה עבור כל checkbox.


    <input type="hidden" value="sometext"

  14. iliakap2002 הגיב:

    אני לא מבין
    אם אתה ממילא צריך לשלוח את הבחירה לשרת, למה להסתבך?
    תשלחת את כל הצ'קבוסים נשבחרו ותעשה איתם מה שבא לך בשרת, בשביל מה לך עוד סיבוך עם צד"ל?

  15. שימי הגיב:

    צודק
    באמת מיותר להישתמש בhidden
    שאפשר להשתמש בname בצד השרת.

שלח תשובה