Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 23:34

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



JQuery Werte Weitergabe

Discussion on JQuery Werte Weitergabe within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
JQuery Werte Weitergabe

Guten Abend liebe Community,

mein Problem ist folgendes: Ich habe ein Formulartextfeld und möchte das was dort reingeschreiben wird mit JQuery auslesen wenn ein Button gedrückt wird.
Der Inhalt/Wert soll dann in in ein neu generiertes Div geschrieben werden.

Jedoch, wer hätte es gedacht, tut JQuery das nicht und ich lerne erst seit kurzem mit JQuery umzugehen.


notes.htm
HTML Code:
<!DOCTYPE html>
<html>
	<head>
		<title>Notes Node</title>
		<link rel="stylesheet" type="text/css" href="notes.css">
		<script src="jquery-1.8.0.min.js"></script>
		<script src="readandwrite.js"></script>
		<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
	</head>
	<body>
		<div id="header">
			<div id="head-icon"></div>
			<div id="headline">
				<p>urNotes</p>
			</div>
		</div>

		<hr id="hrhead">

		<div id="content">
			<div id="new-note">
				<form action="notes.htm">
					<input id="read" name="eingabe" type="text" size="30" maxlength="64">
					<input id="save" name="speichern" type="submit" value="Speichern">
				</form>
			</div>
			<div id="notes">
			</div>
		</div>

	</body>
</html>

readandwrite.js
Code:
$(document).ready(function(){
	
	$("#save").click(function ()
	{
		var lala = $("#read").val
   		$('#notes').append("<div class='songle-note'>" + lala + "</div>");
	});
	
	// var text;
	// $("#read").value=text;

	// $("#save").click(function ()
	// 	$('#read').appendTo('#notes'));
});

Das habe ich gerade bei mir in meinen Dateien stehen, und ich schätze mal der JQuery Code wird falsch sein..
roloremo is offline  
Old 12/16/2012, 19:17   #2
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
.value oder .val() aber nicht .val
NotEnoughForYou is offline  
Old 12/16/2012, 19:46   #3
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Quote:
Originally Posted by NotEnoughForYou View Post
.value oder .val() aber nicht .val
Beides ausprobiert, trotzdem kein Lebenszeichen von den Werten.

Tante Edit sagt das neue generierte Div will auch nicht auftauchen..
roloremo is offline  
Old 12/16/2012, 21:02   #4
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
Wird jquery richtig eingebunden ? Pruef mal mit einem alert nachdem das dokument geladen wurde.. Ahja und den submit abbrechen mit return false; sonst kann das ja nicht gehen
NotEnoughForYou is offline  
Old 12/16/2012, 21:26   #5
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Quote:
Originally Posted by NotEnoughForYou View Post
Wird jquery richtig eingebunden ? Pruef mal mit einem alert nachdem das dokument geladen wurde.. Ahja und den submit abbrechen mit return false; sonst kann das ja nicht gehen
an welche stelle genau soll ich das
Code:
return false;
hinschreiben?

Edit: Ich habe jetzt
Code:
$(document).ready(function(){

	$("#save").click(function()
	{
		var lala = $("#read").val()
		alert(lala);
   		$('#notes').append("<div class='songle-note'>" + lala + "</div>");
	});
	
	// var text;
	// $("#read").value=text;

	// $("#save").click(function ()
	// 	$('#read').appendTo('#notes'));
});
da stehen und er gibt zumindest das geschriebene richtig per Alert heraus.
roloremo is offline  
Old 12/16/2012, 21:49   #6
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
Nach dem append vor der })
NotEnoughForYou is offline  
Old 12/16/2012, 22:41   #7
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Hab ich gemacht, der ALert zeigt immernoch das an was ich in das feld geschrieben hab
roloremo is offline  
Old 12/16/2012, 23:04   #8
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
Benutz mal .html statt append und zeig nochmal deinen gesamten code
NotEnoughForYou is offline  
Old 12/16/2012, 23:20   #9
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Hab ihn zu Testzwecken teils geändert, nichtt wundern:

HTML
Code:
<!DOCTYPE html>
<html>
	<head>
		<title>Notes Node</title>
		<link rel="stylesheet" type="text/css" href="notes.css">
		<script src="jquery-1.8.0.min.js"></script>
		<script src="readandwrite.js"></script>
		<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"></meta>
		<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
	</head>
	<body>
		<div id="header">
			<div id="head-icon"></div>
			<div id="headline">
				<p>urNotes</p>
			</div>
		</div>

		<hr id="hrhead">

		<div id="content">
			<div id="new-note">
				<form action="notes.htm">
					<input id="read" name="eingabe" type="text" size="30" maxlength="64">
					<input id="save" name="speichern" type="submit" value="Speichern">
				</form>
			</div>
			<div id="notes">
			</div>
		</div>

	</body>
</html>

CSS
Code:
html, body{
	display: block;
	margin: 0;
	height: 100%;
	width: 100%;
	font-family: 'Rambla', sans-serif;
	font-size: 100%;
}

@import url(http://fonts.googleapis.com/css?family=Rambla:400,700);

#header{
	height: 15%;
	width: 100;
	margin: 0;
}

#head-icon{
	height: 100%;
	width: 20%;
	margin-left: 10%;
	background-image: url(head-icon.svg);
	background-size: contain;
	background-repeat: no-repeat;
	float: left;
}

#headline{
	width: 50%;
	height: 100%;
	margin: 0;
	/*margin-left: 25%;*/
	font-size: 2em;
	font-weight: bold;
	float: left;
}

#hrhead{
	width: 100%;
}

#content{
	height: 85%;
	width: 100;
	margin: 0;
}

#new-note{
	height: 10%;
	width: 100%;
	margin: 0;
	float: left;
}

form{
	height: 100%;
	width: 100%;
	margin: 0;
}

input{
	height: 95%;
	width: 95%;
	margin: 0;
	margin-left: 2.5%;
	border-radius: 12.5px;
	/*box-shadow: 0px 0px 5px #000;*/
}

#save{
	margin: 0;
	margin-left: 2.5%;
	height: 105%;
	font-weight: bold;
	margin-top: 1%;
	color: #FFF;
	background-color: #137CDB;
	border-radius: 0px;
	/*border-bottom-left-radius: 12.5px;
	border-bottom-right-radius: 12.5px;*/
}

#notes{
	height: 50%;
	width: 100%;
	margin: 0;
	margin-top: 25%;
	float: left;
}

.single-note{
	/*min-height: 44px;*/
	height: /*5%*/ 50%;
	/*max-height: 100px;*/
	width: 80%;
	border-radius: 50px;
}

jQuery
Code:
$(document).ready(function(){

	$("#save").click(function()
	{
		var lala = $("#read").val()
		// alert(lala);
   		$('#notes').html("<div class='single-note'>"lala"</div>");
	});
});

War auch schon soweit dass das per .append Geschriebene kurz angezeigt wurde wenn ich nur
Code:
.append(lala);
geschrieben hab, aber wie gesagt danach ist es direkt wieder verschwunden.
roloremo is offline  
Old 12/17/2012, 07:04   #10
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
Ja weil das return false fehlt und somit die form ausgefuehrt wird ...
NotEnoughForYou is offline  
Thanks
1 User
Old 12/17/2012, 07:47   #11
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Achso, dachte das wär nur zu Testzwecken gewesen.. Dankeschön für deine Hilfe


EDIT: Mittlerweile sieht mein jQuery folgendermaßen aus:
Code:
$(document).ready(function(){

	$("#save").click(function()
	{
		var i = 1;
		var lala = $("#read").val()
		var snote = $('<div class="single-note" id="moin"></div>')
   		$('#notes').html(snote);
   		$('.single-note').text(lala).attr("id", "moin" + i).draggable();
   		i++;
	});
});
..und mein HTML so:
Code:
<!DOCTYPE html>
<html>
	<head>
		<title>Notes Node</title>
		<link rel="stylesheet" type="text/css" href="notes.css">
		<script src="jquery-1.8.3.min.js"></script>
		<script src="jquery-ui-1.9.2.custom.min.js"></script>
		<script src="readandwrite.js"></script>
		<meta content="text/html; charset=ISO-8859-1" http-equiv="Content-Type"></meta>
		<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
	</head>
	<body>
		<div id="header">
			<div id="head-icon"></div>
			<div id="headline">
				<p>urNotes</p>
			</div>
		</div>

		<hr id="hrhead">

		<div id="content">
			<div id="new-note">
				<input id="read" name="eingabe" type="text" size="30" maxlength="64">
				<input id="save" name="speichern" type="submit" value="Speichern">
			<div id="notes">
			</div>
		</div>

	</body>
</html>
Folgendes Problem:
Er erstellt nur ein Div und keine anderen neuen, sondern passt das bereits bestehende nur an.. weißt du evtl warum?
roloremo is offline  
Old 12/17/2012, 11:54   #12
 
NotEnoughForYou's Avatar
 
elite*gold: 0
Join Date: Jun 2010
Posts: 3,406
Received Thanks: 2,024
Weil du .html nutzt ... Append fuegt an html ersetzt
NotEnoughForYou is offline  
Old 12/17/2012, 12:03   #13
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,655
Weil du mit $.html() den gesamten Inhalt des Elements ersetzt. Zumal du sowieso $.append() nutzen solltest, denn was du dort anhängst ist kein HTML-String, sondern eine jQuery Collection.

Es fehlt übrigens nach wie vor ein Abbruch des submit Events in deiner Funktion. Deine "Zählvariable" ist außerdem sinnlos, da diese lokal ist und nur während der Ausführung deines Event Handlers existiert - mit anderen Worten, i hat immer den Wert 1.

Versuch es stattdessen mal so:
Code:
$(document).ready(function(){

	$("#save").click(function(e)
	{
		var lala = $("#read").val();
		var snote = $('<div class="single-note"></div>');
		var notes = $('#notes');
   		snote.text(lala).attr("id", "moin" + notes.children().length).draggable();
		notes.append(snote);
		e.preventDefault();
	});
});
Muddy Waters is offline  
Old 12/17/2012, 12:20   #14
 
roloremo's Avatar
 
elite*gold: 0
Join Date: Oct 2009
Posts: 134
Received Thanks: 9
Quote:
Originally Posted by Muddy Waters View Post
Weil du mit $.html() den gesamten Inhalt des Elements ersetzt. Zumal du sowieso $.append() nutzen solltest, denn was du dort anhängst ist kein HTML-String, sondern eine jQuery Collection.

Es fehlt übrigens nach wie vor ein Abbruch des submit Events in deiner Funktion. Deine "Zählvariable" ist außerdem sinnlos, da diese lokal ist und nur während der Ausführung deines Event Handlers existiert - mit anderen Worten, i hat immer den Wert 1.

Versuch es stattdessen mal so:
Code:
$(document).ready(function(){

	$("#save").click(function(e)
	{
		var lala = $("#read").val();
		var snote = $('<div class="single-note"></div>');
		var notes = $('#notes');
   		snote.text(lala).attr("id", "moin" + notes.children().length).draggable();
		notes.append(snote);
		e.preventDefault();
	});
});
Klappt, danke

Ich versuch deinen Code zu verstehen..also:

Code:
var lala = $("#read").val();
ist halt der Inhalt der im Textfeld gerade steht.

Code:
var snote = $('<div class="single-note"></div>');
ist das, was angehängt werden soll später.

Code:
var notes = $('#notes');
sagt einfach nur aus dass die Variable "notes" jetzt das Div mit der Id="notes" ist.

Code:
snote.text(lala).attr("id", "moin" + notes.children().length).draggable();
..sagt aus das in "<div class="single-note"></div>" der Wert reingeschrieben werden soll, den die Variable "lala" gerade besitzt.
Außerdem wird das Div noch mit der Id="moin" bestückt.. aber da hakt's bei mir. Was soll "+ notes.children().length" aussagen?

Was mir auch noch nicht so ganz klar ist: Was soll
Code:
e.preventDefault();
ausrichten?
roloremo is offline  
Old 12/17/2012, 13:38   #15
Administrator
 
Muddy Waters's Avatar
 
elite*gold: 41624
Join Date: Jan 2010
Posts: 22,728
Received Thanks: 12,655
Quote:
Originally Posted by roloremo View Post
Code:
var notes = $('#notes');
sagt einfach nur aus dass die Variable "notes" jetzt das Div mit der Id="notes" ist.

Code:
snote.text(lala).attr("id", "moin" + notes.children().length).draggable();
..sagt aus das in "<div class="single-note"></div>" der Wert reingeschrieben werden soll, den die Variable "lala" gerade besitzt.
Außerdem wird das Div noch mit der Id="moin" bestückt.. aber da hakt's bei mir. Was soll "+ notes.children().length" aussagen?
Du hattest dort ja vorher eine Variable, mit der du die neu erzeugten divs mit aufsteigen nummerierten IDs versehen wolltest. Das hätte aber mit deiner Variante nicht funktioniert, da die von dir vorgesehene Zählvariable nur im Kontext deiner Funktion existiert, mal abgesehen davon, dass du sie dort jedes mal mit dem Wert 1 initialisiert hättest.
Um das trotzdem zu machen, hättest du deine Variable global (also im window Kontext) deklarieren müssen, alternativ kannst du Variablen auch implizit global deklarieren, indem du einfach das var-Statement weglässt.

Es gibt hier aber noch eine Dritte Variante und genau diese habe ich in dem Codebeispiel umgesetzt. Statt eine zusätzliche Zählvariable einzuführen, welche dann mit jedem Funktionsaufruf inkrementiert wird, orientierst du dich einfach an deiner Ausgabe. Du fügst schließlich mit jedem Aufruf der div#notes ein neues Kindelement hinzu. Die Variable notes verweist in dem obigen Beispiel ja bereits auf jene div. Durch den Aufruf von children() über notes wird eine jQuery Collection zurückgegeben, die alle Kindelemente der div#notes enthält. Das Attribut length ist ein Integer Wert, welcher die Anzahl der Elemente in eben dieser Collection angibt.

Quote:
Originally Posted by roloremo View Post
Was mir auch noch nicht so ganz klar ist: Was soll
Code:
e.preventDefault();
ausrichten?
Beim Klick auf den Submit Button wird standardmäßig dein form übermittelt. Das möchtest du in dem Fall aber gar nicht, du willst schließlich mit Klick auf den Button dynamisch deine Seite per JS verändern. Da deine Funktion aber aufgerufen wird, bevor dein form übermittelt wird, hast du dort die Möglichkeit das ansonsten folgende Standardverhalten beim Klicken auf den Submit Button zu unterbinden.
Und genau das machst durch den Aufruf von e.preventDefault(); e ist in dem Fall übrigens das Event Objekt, welches beim Aufruf von Event Handlern grundsätzlich übergeben wird.
Muddy Waters is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
Problem bei Weitergabe von Method in form
04/22/2012 - Web Development - 4 Replies
Hey E*PVP Community :) ich weiß nicht so ganz wie ich das umstellen soll... damit er das richtig macht... <div id="content_top"> Kategorien </div> <div id="content_main"> <?PHP
[Frage]Acc weitergabe
01/19/2012 - WarRock - 11 Replies
Hallo Epvp, da ich mit meinem alten Account kein Warrock mehr spiele. Und mein Clankollege gebannt ist, möchte ich nun meinen alten Account an ihn weitergeben. Und mit meinem neuen Account weiter zocken. Meine Frage dazu nun: Kann man alter Account nun gebannt werden weil mein Kollege damit zockt (also andere IP)
[Meldung]Root Daten weitergabe
11/04/2010 - Metin2 Private Server - 6 Replies
Dann wollen wir es mal melden. Der Root ist Eigentum von mir.Yacki musste ja unbedingt die Root Daten weitergeben.Würde mich freuen über eine Antwort vom Admin. Da wir die Daten für unseren Hoster brauchen IP bräuchten wir eigendlich nur mehr brauchen wir nicht.Würde mich auch freuen das der jenige bestrafft wird. Mit Freundlichen Grüßen sLy
How to Legale Acc weitergabe?
05/02/2009 - Metin2 - 4 Replies
Also ich möchste evtl meinen metin2 Acc per Ebay verkaufen ... bzw. ein Screenshot verkaufen un die Daten + Pw dazu herschenken :mofo: wäre nett wenn mir jmd erklären kann was genau zu beachten ist nicht das ich am Ende i-welche Probleme bekomme oder den acc verliere und kein Geld bekomme *help* :handsdown:



All times are GMT +1. The time now is 23:35.


Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2026 elitepvpers All Rights Reserved.