עבור אל תוכן

חוקי הפורום - נא לקרוא

תמונה

עזרה עם JavaScript ו-HTML

JavaScript HTML

  • אנא התחבר בכדי להגיב
7 תגובות לנושא זה

#1 RuinSain

RuinSain

    https://taamtov.net

  • מתרגמי רשת
  • ******
  • 2,407 הודעות

נכתב ב- ‎21/11/2015‏, ‎19:37

אהלן, חבר'ה. 

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

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

את הרוב סיימתי, אבל אני לא מצליח לשלוח נתונים מתגית ה-input.

כאשר המשתמש ייכנס לאתר יעלה לו חלון prompt שבו הוא ירשום את שמו, זו תהיה החתימה בסוף ההזמנה. את המידע הזה הצלחתי להעביר להזמנה, אבל את השאר לא.

אני לא מבין למה, ברור שיש משהו שאני מפספס. לכן, הנה אני כאן מבקש את עזרתכם!  בכל מקרה, אני ארשום כאן את הקוד עצמו של ה-HTML וה-JavaScript.

<html>
<head>
<link rel="stylesheet" href="CSS.css"/>
<script src="JavaScript.js">
</script>
</head>
<body onload = "load()">

         <span id="invite1">Invite:</span>
		 <input 
              onmouseover="this.value='who is it?';"
              onmouseout="this.value='';" 
        /> <br></br>
	
		 <span id="time">Time:</span>
		 
		 <input
              onmouseover="this.value='when is the event?';"
              onmouseout="this.value='';" 
        /> <br></br>
		 
		 <span id="place">Place:</span>
		 
		<input
              onmouseover="this.value='where is the event?';"
              onmouseout="this.value='';" 
        /> <br></br>
		
		<button onclick= "hideNsee()">GENERATE INVITE</button> 
		

        <div id="invite2" "send()" style="display: none;"> 
            <div id="date">
             10/3/2015
             </div>
			 <h1>Invitation</h1><br></br>
			<div id="text"> 
			 Dear Mr <div id="myName"></div>
			 You are being invited to an annual meeting, regarding
			 to your field of work. Please bring with you all the
			 required documents, to make the meeting productive.
			 if for some reason you cannnot participate in this
			 meeting, you should notify promptly, so we can find
			 you a replacement.
			 The meeting will take place on **send time here**, at **send place here**
			 Please do not be late.
			 </div>
			 
			 Sincerely yours,
			 <div id="myName"></div>
			


 
          </div>
</body>
</html>

והנה ה-JavaScript:

var answer;
var invite;
var time;
var place;

function load()
{
    answer=prompt("what is your name?", "Write your name here"); 
    var idInput = document.getElementById("myName");
    idInput.value = answer;
}



function hideNsee() 
{	
var HNS = document.getElementById("invite2"); 
    document.getElementById("myName").innerHTML = answer;
    if(HNS.style.display == "none")
	HNS.style.display = "block"; 
    else 
	HNS.style.display = "none"; 
	
} 


function send()
{
        invite = document.getElementById("invite1").innerHTML;
		 document.getElementById("invited").innerHTML = invite;
		 
	
}

אני צריך כעת לשמור את מה שהמשתמש יכניס לתוך ה-invite למשל(הכפתור הראשון) ואז לשלוח את זה(פשוט שיירשם שם) כמו שנרשם בסוף ההזמנה <div id="myName"></div>. 

אני מאוד מקווה שאני ברור לגבי הבעיה שלי! אם לא, אנסה להסביר את עצמי טוב יותר.

תודה מראש!


dLORI9W.png  


#2 Comnir

Comnir

    אני קצת ביישן

  • רשומים
  • **
  • 61 הודעות

נכתב ב- ‎21/11/2015‏, ‎21:54

המקום היחיד שבו אני רואה ששינית ערכים שמופיעים בהזמנה הוא הפונקציה hideNsee, והשינוי היחיד הוא של myName. אני לא מבין איפה ניסית לגרום לשדות האחרים להופיע בהזמנה.

אם מוותרים על ניקוי השדות ב-mouseout אז תוכל לקרוא את הערכים ישירות מהשדות ולשים אותם בהזמנה. בנוסף, כדי לקרוא את הערכים הוספתי id לתגיות ה-input.

<html>
<head>
<link rel="stylesheet" href="CSS.css"/>
<script src="JavaScript.js">
</script>
</head>
<body onload = "load()">

         <span id="invite1">Invite:</span>
		 <input id="inInvitee"
              onmouseover="this.value='who is it?';"
        /> <br></br>
	
		 <span id="time">Time:</span>
		 
		 <input id="inTime"
              onmouseover="this.value='when is the event?';"
        /> <br></br>
		 
		 <span id="place">Place:</span>
		 
		<input id="inPlace"
              onmouseover="this.value='where is the event?';"
        /> <br></br>
		
		<button onclick= "hideNsee()">GENERATE INVITE</button> 
		

        <div id="invite2" "send()" style="display: none;"> 
            <div id="date">
             10/3/2015
             </div>
			 <h1>Invitation</h1><br></br>
			<div id="text"> 
			 Dear Mr <span id="myName"></span><br />
			 You are being invited to an annual meeting, regarding
			 to your field of work. Please bring with you all the
			 required documents, to make the meeting productive.
			 if for some reason you cannnot participate in this
			 meeting, you should notify promptly, so we can find
			 you a replacement.<br />
			 The meeting will take place on <span id="time_"></span>, at <span id="place_"></span>
			 <br />
			 Please do not be late.
			 <br />
			 Sincerely yours,
			 <div id="invite_"></div>
			
			 </div>


 
          </div>
</body>
</html>

var answer;

function load()
{
    answer=prompt("what is your name?", "Write your name here"); 
}

function hideNsee() 
{	
var HNS = document.getElementById("invite2"); 
    document.getElementById("myName").innerHTML = answer;
    document.getElementById("invite_").innerHTML = document.getElementById("inInvitee").value;
    document.getElementById("place_").innerHTML = document.getElementById("inPlace").value;
    document.getElementById("time_").innerHTML = document.getElementById("inTime").value;;
    if(HNS.style.display == "none")
	HNS.style.display = "block"; 
    else 
	HNS.style.display = "none"; 
	
} 


function send()
{
        invite = document.getElementById("invite1").innerHTML;
		 document.getElementById("invited").innerHTML = invite;
		 
	
}



#3 RuinSain

RuinSain

    https://taamtov.net

  • מתרגמי רשת
  • ******
  • 2,407 הודעות

נכתב ב- ‎22/11/2015‏, ‎00:08

קודם כל, תודה על העזרה.

שנית כל:

1. אתה הסרת את ההעברה של המידע מה-prompt. אני צריך שזה יועבר אל החתימה. 

2.  לגבי ה-mouserover/out. אני גם חייב את זה. כאן בדיוק הייתה לי בעיה כמו שאתה ראית בעצמך כנראה.

 

וזהו בערך... 

שוב תודה.


dLORI9W.png  


#4 Comnir

Comnir

    אני קצת ביישן

  • רשומים
  • **
  • 61 הודעות

נכתב ב- ‎22/11/2015‏, ‎07:35

1. אתה הסרת את ההעברה של המידע מה-prompt. אני צריך שזה יועבר אל החתימה. 

 

המידע מה-prompt נשמר בתגית myName בפונקציה hideNsee, אבל רשמתי אותה אחרי Dear Mr במקום בסוף, אז צריך רק להחליף בין שמות התגיות.

 

 

2.  לגבי ה-mouserover/out. אני גם חייב את זה. כאן בדיוק הייתה לי בעיה כמו שאתה ראית בעצמך כנראה.

 

אני לא רואה שניסית לשמור את המידע כשמתבצע mouseout. צריך לשמור אותו במשתנה, כמו המשתנים שהגדרת בקובץ js, אם אתה רוצה להעביר את המידע בהמשך בפונקציה send, למשל.

<html>
<head>
<link rel="stylesheet" href="CSS.css"/>
<script src="JavaScript.js">
</script>
</head>
<body onload = "load()">

         <span>Invite:</span>
		 <input id="invite1"
              onmouseover="this.value='who is it?';"
              onmouseout="invite=this.value;this.value='';" 
        /> <br></br>
	
		 <span>Time:</span>
		 
		 <input id="time"
              onmouseover="this.value='when is the event?';"
              onmouseout="time=this.value;this.value='';" 
        /> <br></br>
		 
		 <span>Place:</span>
		 
		<input id="place"
              onmouseover="this.value='where is the event?';"
              onmouseout="place=this.value;this.value='';" 
        /> <br></br>
		
		<button onclick= "hideNsee(); send();">GENERATE INVITE</button> 
		

        <div id="invite2" style="display: none;"> 
            <div id="date">
             10/3/2015
             </div>
			 <h1>Invitation</h1><br></br>
			<div id="text"> 
			 Dear Mr <span id="txtInvited"></span>
			 You are being invited to an annual meeting, regarding
			 to your field of work. Please bring with you all the
			 required documents, to make the meeting productive.
			 if for some reason you cannnot participate in this
			 meeting, you should notify promptly, so we can find
			 you a replacement.
			 The meeting will take place on <span id="txtPlace"></span>, at <span id="txtTime"></span>
			 Please do not be late.
			 </div>
			 
			 Sincerely yours,
			 <span id="myName"></span>
			


 
          </div>
</body>
</html>

var answer;
var invite;
var time;
var place;

function load()
{
    answer=prompt("what is your name?", "Write your name here"); 
    var idInput = document.getElementById("myName");
    idInput.value = answer;
}



function hideNsee() 
{	
    var HNS = document.getElementById("invite2"); 
    document.getElementById("myName").innerHTML = answer;
    if(HNS.style.display == "none")
	HNS.style.display = "block"; 
    else 
	HNS.style.display = "none"; 
	
} 


function send()
{
	alert(invite);
	document.getElementById("txtInvited").innerHTML = invite;
	document.getElementById("txtPlace").innerHTML = place;
	document.getElementById("txtTime").innerHTML = time;
		 
	
}



#5 RuinSain

RuinSain

    https://taamtov.net

  • מתרגמי רשת
  • ******
  • 2,407 הודעות

נכתב ב- ‎22/11/2015‏, ‎08:12

בוקר טוב! 

הכל נראה טוב, אך מדוע ה-alert נמצא בפונקציה send? 

החלון היחיד שאמור לקפוץ זה ה-propmt בהתחלה. אני רואה ששלחת לו גם משתנה, ואם אני מוריד את חלון ההתראה הזה, המשתנים לא נשמרים בלעדיו.

אך כמו שאמרתי, הוא לא אמור להיות שם.

אז מה יש לנו עד עכשיו?

ה-prompt עולה כמו שצריך, וגם שולח את המידע.-תקין.

(*במצב הנוכחי) שלושת הנתונים נשלחים למקום שלהם בהזמנה, אך עם alert שקופץ בסוף ההזמנה-לא תקין.

 איך אוכל לעשות שחלון ההתראה השני לא יקפוץ, אך בכל זאת יישמרו ויישלחו הנתונים להזמנה?

תודה מראש ויום טוב. 


dLORI9W.png  


#6 Comnir

Comnir

    אני קצת ביישן

  • רשומים
  • **
  • 61 הודעות

נכתב ב- ‎22/11/2015‏, ‎11:33

הוספתי alert רק לצורך בדיקה שלי, אין שום צורך בו. אם אני משנה את send להיות

function send()
{
	document.getElementById("txtInvited").innerHTML = invite;
	document.getElementById("txtPlace").innerHTML = place;
	document.getElementById("txtTime").innerHTML = time;
}

אז כל הערכים מופיעים אצלי בהזמנה.



#7 RuinSain

RuinSain

    https://taamtov.net

  • מתרגמי רשת
  • ******
  • 2,407 הודעות

נכתב ב- ‎22/11/2015‏, ‎12:43

הערכים שנשלחים להזמנה אצלי(עשיתי פשוט העתק הדבק ל-html ול-javascript מכאן, כדי לראות שהבעיה לא אצלי בקוד) הם מה שמופיע ב-onmouseover. כלומר "how is it" "where is it?" "when is it".

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


dLORI9W.png  


#8 Comnir

Comnir

    אני קצת ביישן

  • רשומים
  • **
  • 61 הודעות

נכתב ב- ‎22/11/2015‏, ‎20:50

אני לא יודע למה זה לא עובד אצלך... בכרום יש Developer Tools ושם יש console שבו אתה יכול להריץ קוד JavaScript. אם תפעיל אותו כשהעמוד HTML פתוח אז תוכל לכתוב שם answer והערך שלו יודפס. נסה לבדוק מה קורה עם המשתנים והערכים שלהם בשלבים שונים כדי לאתר את הבעיה.







תויגו גם עם אחת או יותר ממילות המפתח הללו: JavaScript, HTML

1 משתמשים קוראים נושא זה

0 משתמשים, 1 אורחים, 0 משתמשים אנונימיים