Onsubmit funktioniert nicht
Delfried
- javascript
0 minicrispie0 Delfried0 minicrispie0 Delfried0 minicrispie0 Delfried
0 gast420 minicrispie0 gast42
0
Der Martin
Guten Tag,
habe seit langem mich heute mal wieder an JS gewagt.
Da ich mit einer bestimmten Suchfunktion nicht zu frieden bin, will ich mir mit Hilfe eines Formulars einen eigenen Link zusammen basteln.
Eig. ist soll das ganze ganz einfach sein:
1. Ich gebe in Feld den Suchbegriff ein.
2. Ich klicke auf den Submit-Button oder drücke Enter.
3. Das Javascript baut mir den Link zusammen.
<html>
<head>
<title>Flickr-Link</title>
</head>
<body>
<script type="text/javascript">
function suche(b) {
var a = "Anfang vom Link";
var c = "Ende vom Link";
var d = a + b + c;
location = d;
}
</script>
<form name="form" onsubmit="suche(document.form.suche.value);">
<input type="text" name="suche" size="30"></input>
<input type="submit" value="Suche"></input>
</form>
</body>
</html>
So sieht dann das ganze aus.
Doch onsubmit ruft leider nicht die Funktion auf.
Kann mir vllt. jemand sagen, was ich falsch mache.
Ich experimentiere jetzt schon ewig und auch google konnte mir nicht helfen.
Ich will die Funktio nicht mit einem Link aufrufen (wie es auch möglich wäre und wo es einigermaßen funktioniert hat), sondern mit einem Submitbutton,
damit ich das ganze mit Enter bestätigen kann.
Gruß, Delfried
Hallo,
ein <form>-Tag benötigt IMMER ein action-Attribut...
MfG. Christoph Ludwig
Hallo,
ein <form>-Tag benötigt IMMER ein action-Attribut...
MfG. Christoph Ludwig
Das habe ich auch schon probiert. Jedoch wird deswegen trozdem die Funktion nicht aufgerufen. Nur das man dann auf der angegebenen Seite landet.
Ich mach i-etwas falsch, aufgrund dessen die Funktion nicht aufgerufen wird.
://
Gruß, Delfried
Hallo,
Das habe ich auch schon probiert. Jedoch wird deswegen trozdem die Funktion nicht aufgerufen. Nur das man dann auf der angegebenen Seite landet.
Ich mach i-etwas falsch, aufgrund dessen die Funktion nicht aufgerufen wird.
ja ... man sollte ab und zu auf dei Fehler-Konsole hören ...
wie wärs damit(aus testzwecken hab ich das script verändert :) ):
<html>
<head>
<title>Flickr-Link</title>
</head>
<body>
<script type="text/javascript">
function suche(b) {
alert(b);
}
</script>
<form name="form" action="javascript:suche(document.form.suche.value);">
<input type="text" name="suche" size="30"></input>
<input type="submit" value="Suche"></input>
</form>
</body>
</html>
MfG. Christoph Ludwig
Hey,
vielen Dank.
Endlich verstehe ich die schreibweise mit "javascript:**".
Jetzt funktioniert es.
Vielen Dank.
Gruß, Delfried#
PS: Den alert-Test hatte ich bei meiner Variante auch gemacht, aber auch da gab das Script keinen laut von sich.
Hallo,
Hey,
vielen Dank.
Endlich verstehe ich die schreibweise mit "javascript:**".
Jetzt funktioniert es.
Vielen Dank.
Gruß, Delfried#
PS: Den alert-Test hatte ich bei meiner Variante auch gemacht, aber auch da gab das Script keinen laut von sich.
ABER: achte auf das, was martin gepostet hat!
diese (grevierenden) Fehler hab ich übersehn ...
MfG. Christoph Ludwig
ABER: achte auf das, was martin gepostet hat!
diese (grevierenden) Fehler hab ich übersehn ...MfG. Christoph Ludwig
Ok, thx, wusste nicht, dass es zum Problemen kommt bei dieser Bennenung.
Gruß, Delfried
Hallo,
Ok, thx, wusste nicht, dass es zum Problemen kommt bei dieser Bennenung.
nein ... ich mein nicht die benennung sondern das z.b. das </input> völlig falsch ist, oder statt location = location.href= dastehen muss ...
MfG. Christoph Ludwig
benenn mal deine Funktion anders
Hallo,
benenn mal deine Funktion anders
wozu soll er das machen?
so weit ich weis ist "suche" kein reserviertes wort. deshalb kann er es auch ohne bedenken benutzen...
MfG. Christoph Ludwig
so weit ich weis ist "suche" kein reserviertes wort. deshalb kann er es auch ohne bedenken benutzen...
es sei denn innerhalb eines Formulars hat "suche" noch eine andere Bedeutung.
Hallo,
es sei denn innerhalb eines Formulars hat "suche" noch eine andere Bedeutung.
hmm ... stimmt!
mein fehler... hätt ich eigentlich sehen müssen ^^
MfG. Christoph Ludwig
Hallo,
in welchem Browser testest du?
<script type="text/javascript">
function suche(b) {
Zumindest im IE kann es problematisch sein, wenn Javascript-Objekte den gleichen Namen haben wie Formularelemente. Da würde ich mal den Namen entweder der Funktion oder des Formularelements ändern.
var a = "Anfang vom Link";
var c = "Ende vom Link";
var d = a + b + c;
location = d;
Hier sollte deine Fehlerkonsole anschlagen - du möchtest den String an location.href zuweisen, nicht an location.
<input type="text" name="suche" size="30"></input>
<input type="submit" value="Suche"></input>
Das input-Element ist per definitionem leer und braucht kein schließendes Tag. Es wird in XHTML mit der Kurzschreibweise /> geschlossen, in HTML ist das schließende Tag ein Fehler.
Doch onsubmit ruft leider nicht die Funktion auf.
Wie stellst du das fest? Warum kannst du so sicher sein?
So long,
Martin
Hallo,
in welchem Browser testest du?
<script type="text/javascript">
function suche(b) {Zumindest im IE kann es problematisch sein, wenn Javascript-Objekte den gleichen Namen haben wie Formularelemente. Da würde ich mal den Namen entweder der Funktion oder des Formularelements ändern.
var a = "Anfang vom Link";
var c = "Ende vom Link";
var d = a + b + c;
location = d;Hier sollte deine Fehlerkonsole anschlagen - du möchtest den String an location.href zuweisen, nicht an location.
<input type="text" name="suche" size="30"></input>
<input type="submit" value="Suche"></input>Das input-Element ist per definitionem leer und braucht kein schließendes Tag. Es wird in XHTML mit der Kurzschreibweise /> geschlossen, in HTML ist das schließende Tag ein Fehler.
Doch onsubmit ruft leider nicht die Funktion auf.
Wie stellst du das fest? Warum kannst du so sicher sein?
So long,
Martin
Ich teste nur auf Firefox und das Script ist auch ausschließlich für mich.
Ansonsten danke für die Antwort.
Das die Funktion nicht funktioniert hat, habe ich daraus geschlossen, dass
alert("Hallo") nicht ausgegeben wurde.
Naja, jetzt ist das Problem ja gelöst.
Vielen Dank,
Gruß, Delfried
Hallo,
Zumindest im IE kann es problematisch sein, wenn Javascript-Objekte den gleichen Namen haben wie Formularelemente.
Das gilt m.W. für IDs, aber nicht Namen.
Mathias
Hallo,
Da würde ich mal den Namen entweder der Funktion oder des Formularelements ändern.
Okay, Unrecht hast du nicht. Das Problem hier ist aber ein anderes: Bei Inline-Event-Handler liegt das Element (explizit: this) in der Scope-Chain.
<form action="bla" onsubmit="alert(feld + '\n' + action + '\n' + nodeName); return false;">
<input name="feld">
</form>
Das betrifft m.W. alle Browser.
Mathias
du möchtest den String an location.href zuweisen, nicht an location.
Das müsste beides funktionieren (vgl. Netscape JS 1.3).
Mathias