פורסם 2012 בפברואר 2613 שנים שלום.יש לי טופס מאוד פשוט לביצוע חיפוש באתר שמורכב רק משדה של טקסט וכפתור submit.עכשיו אני רוצה לוודא שיש ערך כלשהו (שהוא לא רווח) בשדה הטקסט לפני שאני שולח אותו לטיפול בדף PHP.איך אני עושה את זה?חשבתי לשנות את הכפתור מסוג submit לסוג button ולהוסיף שדה onclick שיריץ פונקציה בjavascript שתבדוק אם יש ערךואם יש אז הוא יבצע את הפעולה submitאני רק לא יודע איך אני בדיוק כותב את זה...
פורסם 2012 בפברואר 2613 שנים זה די פשוט, צור פונקציה שמחזירה true אם הקלט תקין ו-false אחרת, ורשום אותה ל-onsubmit של הטופס.
פורסם 2012 בפברואר 2613 שנים מחבר אני לא מאוד מבין בjavascript.. ניסיתי כזה דבר.הטופס:<form name="search_form" action="search.php" method="get"> <fieldset style="background-color: lightgreen; border:0pt;width:180px;float:left;"> <input type="text" name="phrase" style="width:178px;" /> <br /> <a href="advcsrc.php" style="font-size:10pt;"> Advanced Search. </a> <span style="float:right;"> <input type="button" onclick="search(document.getElementById('phrase')" name="search" id="search" value="Search" /> </span> </fieldset> </form>והקוד ב javascript:function search(phrase) { phrase.replace(/^\s+|\s+$/g,""); if(phrase.length == 0){ alert("The Search field is empty! /n Please enter a search phrase, and try again."); phrase.focus(); }else{ document.search_form.submit(); } }זה לא עובד לי- ואני חושב שזה בגלל שאני שולח לפונקציה אלמנט של טופס ולא מחרוזת..אבל זה גם לא עבד לי כשניסיתי בטופס לכתוב:<input type="button" onclick="search(phrase.value)" name="search" id="search" value="Search" />
פורסם 2012 בפברואר 2613 שנים כמו שאמרתי, סיבכת צריך משהו כזה: <script>function validate() { phrase = document.getElementById("phrase").value; if (phrase is valid) { return true; } else { return false; }}</script><form action="search.php" method="get" onsubmit="return validate()"> <input type="text" name="phrase" /> <input type="submit" /></form> כשכמובן במקום "phrase is valid" שים את הקוד שבודק שהביטוי אכן תקני.
פורסם 2012 בפברואר 2613 שנים מחבר שיניתי כמו שהצעת- עם השינויים:function validate() { phrase = document.getElementById("phrase").value; phrase.replace(/^\s+|\s+$/g,""); if (phrase.length == 0) { return true; } else { return false; } }וזה עדיין לא עובד לי.אני אמור לשנות את document לשם של הדף?
פורסם 2012 בפברואר 2613 שנים שים alertים כדי לדעת מה קורה בדיוק (תבדוק מה בדיוק הביטוי הרגולרי מצא וכו').
פורסם 2012 בפברואר 2613 שנים מחבר לא נראה לי שזה מריץ בכלל את הjavascript זה לא הראה אף אחד מהalertים שהוספתי.
פורסם 2012 בפברואר 2613 שנים אז תעלה לכאן את כל הקוד הרלוונטי.חוץ מזה, יש דרכים לדבג את הג'אווהסקריפט בדפדפן (יש כלי מובנה לזה בכרום, ולפיירפוקס יש את Firebug).
פורסם 2012 בפברואר 2613 שנים מחבר הטופס: <form name="search_form" action="search.php" method="get" onsubmit="validate()"> <fieldset style="background-color: lightgreen; border:0pt;width:180px;float:left;"> <input type="text" name="phrase" style="width:178px;" /> <br /> <a href="advcsrc.php" style="font-size:10pt;"> Advanced Search. </a> <span style="float:right;"> <input type="submit" name="search" id="search" value="Search" /> </span> </fieldset> </form>הקוד של javascript (הוא נמצא בין תגיות script)function validate() { phrase = document.getElementById("phrase").value; alert(phrase); phrase.replace(/^\s+|\s+$/g,""); if (phrase.length == 0) { alert("found expression to be true"); return true; } else { alert("found expression to be false"); return false; } }אני לא יודע אם זה רלוונטי- אבל הטופס נמצא בקובץ אחד והפונקציה של javascript בקובץ שני ואז קובץ שלישי של php שמשתמש בinclude על שתי הקבצים. לא נראה לי שזה יוצר את הבעיה כי אני עושה את זה כבר לכמה פונקציות ולא הייתה לי שום בעיה.
פורסם 2012 בפברואר 2613 שנים שים לב שאתה עושה getElementById אבל לתיבת הטקסט שלך יש name, לא id.חוץ מזה, אתה צריך לעשות return validate, לא סתם validate.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.