Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Javascript-Frage“

saila

Moderatorle

Hi,

der HTML-Tag input type Text beinhaltet die id="begriff".

Dieser Wert wird an ein Script übergeben, wobei dieses die Anzahl der übergebenen Zeichen prüfen soll.

Das mach ich mit:
Code:
var lang = length('begriff');
Die sich ergebende Frage ist nun, warum wird die "var lang" in der if() nicht berücksichtigt?

Das ganze script:
Code:
function search() {
    // prüfen ob mind. 3 Zeichen vorhanden
    var lang = length('begriff');
         
    if(lang >= 3) {
        var begriff = $F('begriff');
        var opt = { method:'post', postBody: 'begriff='+begriff };
        new Ajax.Updater( {success:'ergebnisse'}, 'search.php', opt);
    }
}
 

michas

Nicht mehr ganz neu hier

AW: Javascript-Frage

Hi,
versuch es doch lieber so:

var lang = 'begriff';

if(lang.length >= 3) {
....
}

length ist nämlich ne Eigenschaft des String-Objektes und keine Methode. Wüsste auch nicht, dass es eine JS-Funktion gibt, die die Länge einer übergebenen Stringvariablen zurückgibt.

Gruß Micha
 
Zuletzt bearbeitet:
C

cruzio

Guest

AW: Javascript-Frage

schliesse mich Michas Empfehlung an.

Wenn Du wolltest, könntest Du natürlich auch in der vorgelagerten Form die Länge des Feldes bereits abgreifen mit:

> document.form.feld.value.length <

Denke so richtig viel Sinn macht das aber nicht.
 

michas

Nicht mehr ganz neu hier

AW: Javascript-Frage

@cruzio
saila will aber nicht - soweit ich es richtig verstanden habe - die Länge des Valuefeldes, sondern die Länge des Strings, welches die Bezeichung der ID des Inputfeldes ist, sodaß dein Ansatz nicht 100% zutrifft.

Gruß Micha
 
C

cruzio

Guest

AW: Javascript-Frage

@michas:
Das verwirrt mich - in meiner kleinen Welt dachte ich sofort dass es um die Stringlänge des, in das Textfeld eingegebenen, Wertes geht :rolleyes:
=> na dann schliess ich mich Dir erstrecht an ;)
 

saila

Moderatorle

AW: Javascript-Frage

Hi,
versuch es doch lieber so:

var lang = 'begriff';

if(lang.length >= 3) {
....
}

length ist nämlich ne Eigenschaft des String-Objektes und keine Methode. Wüsste auch nicht, dass es eine JS-Funktion gibt, die die Länge einer übergebenen Stringvariablen zurückgibt.

Gruß Micha


Hi Micha,

Danke für die Info und übernommen und getestet. Geht dennoch nicht. Es wird die erste Eingabe direkt übernommen und nicht mind. 3.

Evtl. noch eine Lösung?
 

Duddle

Posting-Frequenz: 14µHz

AW: Javascript-Frage

Ich verstehe nicht allzu viel von JS, aber ich gehe bei sowas immer über den "Baum" (DOM?), von wegen document.wo.wer.funktion. Einfacher geht es dann mit getElementById(), wenn dann konkrete IDs bearbeitet werden sollen.
So funktioniert es bei mir:

HTML:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">	
<head>
	<title>JavaScript-Test</title>
	<script type="text/javascript">
		function search(id) {
			lang = document.getElementById(id).value.length;
		    // prüfen ob mind. 3 Zeichen vorhanden
		    if(lang >= 3) {
		        alert("lang groesser 3");
		    }
			else
				alert("kleiner 3");
		}
	</script>
</head>
<body id="">
	<form action="something.php" method="post">
		<input id="begriff" type="text" size="50" />		
		<input type="submit" value="abschicken" onclick="search('begriff');return false;" />
	</form>
</body>
</html>


Duddle
 

michas

Nicht mehr ganz neu hier

AW: Javascript-Frage

@Duddle
$F(id) bewirkt doch das selbe wie 'document.getElementById(id).value'

saila will doch bei seiner Abfrage nicht die Länge des Strings bestimmen, der bei Value drinn steht. Stimmt doch saila, oder?

@saila
Vielleicht könntest Du nochmal etwas präziser beschreiben was die Funktion genauer machen soll und den aktuell geänderten Quelltext hinzufügen, damit wir nochmal gemeinsam drüber schauen können.

Gruß Micha
 

saila

Moderatorle

AW: Javascript-Frage

der String muss mind. 3 Zeichen beinhalten, bevor eine weitere Verarbeitung erfolgt. Das ist das Ziel. :)
 

knispel

Mediendesigner

AW: Javascript-Frage

Also ich denke, dass es so ungefähr funzen müsste:

HTML:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">    
<head>
    <title>JavaScript-Test</title>
    <script language="javascript" type="text/javascript">
function chkcomment()
{
if (document.id.begriff.value.length < 3)
{
alert("Das Feld muss wenigstens 3 Zeichen enthalten!");
document.id.begriff.focus();
return false;
}
}
</script>
</head>
<body>
    <form name="id" action="#" method="post" onsubmit="chkcomment()">
        <input id="begriff" type="text" size="50" />        
        <input type="submit" value="abschicken" />
    </form>
</body>
</html>
:)
 
Zuletzt bearbeitet:

michas

Nicht mehr ganz neu hier

AW: Javascript-Frage

Nun ist es also doch so, das saila den String des Value-Wertes auf dessen Länge überprüfen will? Gut zu wissen.

@saila
So wie knispel den CODE geschrieben hat, funktioniert es. Hast Du diesen mal in einer extra Datei probiert?
Vielleicht liegt dein Problem ja an anderer Stelle. Gibt es ne möglichkeit, den gesamten Quelltext zu sehen?

Gruß Micha
 

Tim

Hutträger

AW: Javascript-Frage

@saila
Grad eben hab ich knispels Script ausprobiert. Funktioniert auch hier tadellos.
Je nachdem wo du das testest: Hast du vielleicht Javascript deaktiviert?
 

saila

Moderatorle

AW: Javascript-Frage

geht nicht, direkt heute Nacht noch getestet:
Code:
function Suche() {
    if (document.id.begriff.value.length  < 3) {
        // Variablenzuweisung
        var begriff = $F('begriff');
        
        var opt = { method:'post', postBody: 'begriff='+begriff };
        // Ajax-Anfrage an das Backend mit dem Parameter schbegriff
        new Ajax.Updater( {success:'ergebnisse'}, 'ssearch.php', opt);

    }
}

oben das komplette Teil.
 

Duddle

Posting-Frequenz: 14µHz

AW: Javascript-Frage

Hat mal jemand meines getestet?
Das gibt bei Stringlänge<3 was anderes zurück als bei Stringlänge>=3.


Duddle
 

saila

Moderatorle

AW: Javascript-Frage

Hatte ich doch geschrieben. Geht nicht.....

Das Problem bei den bisherigen Vorschlägen ist, dass bei der ersten Eingabe direkt ein Ergebnis folgt. Sprich - es wird überhaupt nicht kontrolliert, ob der String mind. 3 Zeichen beinhaltet.
 

michas

Nicht mehr ganz neu hier

AW: Javascript-Frage

Hi,

logisch, weil die Länge des Strings anfangs doch eher 0 ist, oder? Und 0 < 3 !

Dreh Deinen Vergleichsoperator doch mal um! Oder mach noch ne Negation:)

Gruß Micha
 

saila

Moderatorle

AW: Javascript-Frage

Also, es handelt sich um eine Livesuche mit Ajax und Javascript.

Es werden Zeichen in den Input-Tag eingegeben. Anfangs klar 0, wobei bei jedem antippen eines Zeichen auf der Tastatur die Suche beginnt. Nun möchte ich jedoch, das die Suche nicht ab dem ersten Zeichen, sondern ab bzw. mit dem dritten Zeichen startet.

Somit soll der String vorab auf Anzahl der Zeichen geprüft werden und durch die Kontrolle auch die Suche erst dann begonnen werden.

Ich habe die bisherigen Vorschläge alle durch und auch zuvor schon selbst vorgenommen. Doch man kann ja immer einen Fehler reinhauen. Ergo - nochmaliger Test mit den Vorschlägen von hier.

Doch bislang - keine Lösung. Es wird immer ab dem ersten Zeichen bereits die Suche begonnen. Aber da fällt mir was ein........
 

Duddle

Posting-Frequenz: 14µHz

AW: Javascript-Frage

Ich weiss, ich wiederhole mich und ich schätze ich lese grad an allen vorbei, aber ich bin mir immer noch sicher, dass meine Lösung stimmt:
HTML:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">	
<head>
	<title>JavaScript-Test</title>
	<script type="text/javascript">
		function search(id) {
			lang = document.getElementById(id).value.length;
		    // prüfen ob mind. 3 Zeichen vorhanden
		    if(lang >= 3) {
		        alert("lang groesser 3");
		    }
			else
				return 0;
		}
	</script>
</head>
<body id="">
	<form action="something.php" method="post">
		<input id="begriff" type="text" size="50" onkeyup="search('begriff')" />		
		<input type="submit" value="abschicken" />
	</form>
</body>
</html>

Wenn ich diese Datei öffne und in dem Feld was tippe, wird erst der alert ausgegeben, wenn ich 3 Zeichen eingetippt hab. Anstatt dem alert setzt du dann halt dein AJAX-Zeug.


Duddle
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.189
Beiträge
2.582.077
Mitglieder
67.259
Neuestes Mitglied
SaschMasch1312
Oben