Problem mit Focus setzen auf inputfeld (PHP)

speedyggg

Erfahrenes Mitglied
Hallo JSs,

vorweg ich habe null Ahnung von JS . Habe aber ein Problem mit einem Programm welches ich mit PHP programmiert habe, und sich folgendermaßen darstellt.

Ich möchte in ein Inputfeld den focus setzen. Mit PHP nicht möglich aber wohl mit JS.

Ich bräuchte nun hilfe wie die ganze Befehlzeile aussehen müßte :confused:

Mein Code in PHP sieht so aus (Auszug):
Code:
    <FORM ACTION="re_aendern2.php" METHOD="POST">
      <td>EDV Nr:<INPUT TYPE="text" NAME="auswahl"</td>
in das Feld "auswahl" möchte ich den Focus/Cursor haben. Kann mir da jemand helfen?!

Vielen, vielen Dank im Voraus!

Speedyggg
 
Hallo speedyggg,

ein Beispiel, wie du das beim Laden der Seite machen kannst:
Code:
<body onLoad='Cursorsetzen()'>

Dir fehlt noch der Name des Formulars. Ich nenne es hier mal 'Formular1'.

Im Headbereich:
Code:
<head>
<script language='Javascript'>
function Cursorsetzen()
{
   window.Formluar1.auswahl.focus();
}
</script>
</head>

Willst du das bei einem Klick auf einen Button machen, dann schreibst du einfach "OnClick='Cursorsetzen()'.

Du musst es nicht unbedingt in eine Funktion setzen, du kannst es auch folgendermaßen schreiben:
Code:
<body onload='javascript:window.Formular1.auswahl.focus();'>

Wenn du allerdings mehrere Anweisungen beim Laden der Website brauchst, dann solltest du eine Funktion benutzen.

Ich hoffe ich konnte helfen.
Bei Fragen, einfach fragen.

Ciao:
Da' Hacker
 
ähm, Räusper, danke für die Antwort aber irgendwie fehlt mir da was.

Den Aufruf:
Code:
<body onload='javascript:window.Formular1.auswahl.focus();'>

wird auf welcher Seite eingetragen?

Auf der Seite die, Seite aufruft die den Cursor in das Feld setzen soll
oder wo genau :confused:

Und benötigt man die Aufrufe:
Code:
<body onLoad='Cursorsetzen()'>
<head>
<script language='Javascript'>
function Cursorsetzen()
{
   window.Formluar1.auswahl.focus();
}
</script>
</head>

zusätzlich noch oder reicht die Zeile wie du oben beschrieben hast.

Speedyggg
 
Hi speedyggg,

sorry, hab gerade gemerkt, dass ich einen fatalen Tippfehler im Head-Code habe.
Heißt natürlich nicht "Formluar1", sondern "Formular1".

Also, da es mich momentan auf ein ganz bestimmtes Örtchen zieht ;) Hab ich schnell einen Code für dich geschrieben:

Code:
<!DOCTYPE HTML PUBLIC '-//W3C//DTD HTML 4.01 Transitional//EN'
'http://www.w3.org/TR/html4/loose.dtd'><HTML>
<HEAD>
<TITLE>Testseite</TITLE>
<META NAME='generator' CONTENT='Adams HTML-Seiten-Editor'>
<META NAME='author' CONTENT='Adam K. - www . DaHacker . de . vu'>
<script language='Javascript'>
function Cursorsetzen()
{
   window.Formular1.auswahl.focus();
}
</script>
</HEAD>
<BODY BGCOLOR='#2222FF' TEXT='#000000' LINK='#152154' VLINK='#374376' ALINK='#FFFF00'><center>
<br>
<form name='Formular1'><br>
EDV Nr:<INPUT TYPE="text" NAME="auswahl"><br>
<input TYPE='Button' Value='Cursor setzen' OnClick='Cursorsetzen()'><br>
</form><br>
<br>
</CENTER>
</BODY>
</HTML>

Habs jetzt lieber in ein Button-Klick-Ereignis geschrieben.

Kopiere ihn in eine neue HTML-Datei und probiere ihn aus. Kann jetzt nicht mehr weiterschreiben, aber wenn du Fragen hast, dann poste sie einfach.

Ich hoffe, ich konnte dir weiterhelfen.

Ciao:
Da' Hacker
 
Hallo ,

ich hoffe du hast dein Geschäft erfolgreich abgeschlossen ;)

Ich trete bei meinem Problem immer noch auf der Stelle.

Dein Script habe ich getestet und funktionert wunderbar. Nur leider bin ich nicht in der Lage
das so umzusetzen das beim Laden meiner Seite der Cursor in das passende Feld gesetzt wird.

Ich poste mal wie es versucht habe.

Code:
<HTML>
<HEAD>
    <TITLE>Nobilia UHD Produktion</TITLE>
<script language='Javascript'>
function Cursorsetzen()
{
   window.Formular1.auswahl.focus();
}
</script>
</HEAD>
<BODY>
<body bgcolor="#DBD1D1">
<body onLoad='Cursorsetzen()'>
<p><div align="center"><span style="color:red;font-family:'Tahoma',Times,serif; font-size:200%">Nobilia UHD Base<br><br /></span>
<span style="font-family:'tahoma';font-size:10%">
<FORM ACTION="re_aendern2.php" METHOD="POST" >

<table border="1">
     <colgroup>
        <col width="200">
<!--        <col width="200">
        <col width="200">
        <col width="150">
        <col width="100">-->
        </colgroup>
    <tr>
    <FORM ACTION="re_aendern2.php" METHOD="POST">
      
      <td>EDV Nr:<INPUT TYPE="text" NAME="auswahl"</td>
      
<!--     <td>Lieferant:<INPUT TYPE="text" NAME="s_lief"></td>
       <td>Beschreibung des Fehlers:<INPUT TYPE="text" NAME="S_Sbeschrei"></td>
      <td>Barcode:<INPUT TYPE="text" NAME="S_Sbeschrei"></td>-->
      <td><INPUT TYPE="submit" NAME="gos" VALUE="Daten anzeigen" Onload="Cursorsetzen()"</td>
      </form>
      <tr>
      <tr>
      <FORM ACTION="ruecksetz.php" METHOD="POST" >
      <td>EDV Nr:<INPUT TYPE="text" NAME="auswahl"></td>
      <td><INPUT TYPE="submit" NAME="back" VALUE="Daten zur&uuml;cksetzen"></td>
</tr> 
      </form>
      <td colspan="1" align="right"><a href="index.html" target="_parent" >Mainpage</td>
    </tr>
        <!-- usw. andere Zeilen der Tabelle -->
</table>
<tr>
<table>

</table>

Please help me

Speedyggg
 
Hi speedyggg,

natürlich, meine Geschäfte laufen immer gut! :D ;)

Also das Problem bei deinem Code sehe ich direkt auf den ersten Blick. Das mit dem "<Body onLoad='Cursorsetzen()'>" hast du gecheckt. Allerdings fehlt dir das "Formular1". Du hast also folgend dein Formularfeld nicht benannt. Ich wollte eigentlich den Bereich farblich hervorheben, den du ändern musst, aber (sorry) dein Code ist soooo verbuggt ;) , dass ich dafür echt keine Kraft mehr hatte(bitte nicht übel nehmen, aber hast du den Code mit einem Webeditor erstellt? ;) ). Also hier mal der Code der klappen muss:
Code:
<HTML>
<HEAD>
    <TITLE>Nobilia UHD Produktion</TITLE>
<script language='Javascript'>
function Cursorsetzen()
{
	document.getElementById("auswahl").focus();
   //window.OberFormular.Formular1.auswahl.focus(); <!-- Fehler: Keine Ahnung, warum! ;)
}
</script>
</HEAD>
<body bgcolor="#DBD1D1" onLoad='Cursorsetzen()'>
<p><div align="center"><span style="color:red;font-family:'Tahoma',Times,serif; font-size:200%">Nobilia UHD Base<br><br /></span>
<span style="font-family:'tahoma';font-size:10%">
<FORM NAME='OberFormular' ACTION="re_aendern2.php" METHOD="POST">
<table border="1">
     <colgroup>
        <col width="200">
<!--        <col width="200">
        <col width="200">
        <col width="150">
        <col width="100">-->
        </colgroup>
    <tr>
    <FORM NAME='Formular1' ACTION="re_aendern2.php" METHOD="POST">
      
      <td>EDV Nr:<INPUT TYPE="text" NAME="auswahl"></td>
      
<!--     <td>Lieferant:<INPUT TYPE="text" NAME="s_lief"></td>
       <td>Beschreibung des Fehlers:<INPUT TYPE="text" NAME="S_Sbeschrei"></td>
      <td>Barcode:<INPUT TYPE="text" NAME="S_Sbeschrei" ></td>-->
      <td><INPUT TYPE="submit" NAME="gos" VALUE="Daten anzeigen" ></td> <!-- Onload="Cursorsetzen()" -->
      </form>
      <tr>
      <tr>
      <FORM ACTION="ruecksetz.php" METHOD="POST" >
      <td>EDV Nr:<INPUT TYPE="text" NAME="auswahl2"></td>
      <td><INPUT TYPE="submit" NAME="back" VALUE="Daten zur&uuml;cksetzen"></td>
</tr> 
      </form>
      <td colspan="1" align="right"><a href="index.html" target="_parent" >Mainpage</td>
    </tr>
        <!-- usw. andere Zeilen der Tabelle -->
</table>
<tr>
<table>
</form>
</table>
</body>
</html>

Nun zur Erklärung:
Erstmal, da ich mich selber nicht so gut mit JS auskenne und es auf Anhieb wirklich nicht klappen wollte, hab ich nicht zum "Document Object Module"(Fenster.Dokument.Formular.Element.Funktion) gegriffen, sondern zu "getElementById()", bei dem man in den Klammern den Namen des zu suchenden Objekts eingibt und danach die Anweisung folgt.
Es war echt erstaunlich wieviele Fehler in dem Code sind - wieso sind dort DREI <Body>-Tags?
Wieso hast du im <Input Type='Text'> ein "OnLoad='Cursorsetzen()'-Ereignis, wenn du es bereits im Body-Bereich hast?
Wieso fehlen bei einigen <Input-Befehlen die abschließenden Spitzen Klammern(>)?
Außerdem hast du insgesamt drei anfängliche <Form>-Tags aber nur zwei davon abgeschlossen!

Fragen, über Fragen. Hoffentlich kannst du die Schuld auf einen Webeditor schieben ;)

Dein Code hat mein Verständnis von Javascript weiter gestärkt, ich hoffe, ich konnte dir auch helfen:
Da' Hacker

PS: Du weißt, bei Fragen, einfach weiter posten ;)
Es kann nämlich sein, dass ich mich zu unverständlich ausgedrückt hab. :D
 
Hallo ,

du hast völlig recht der Code ist buggi. Liegt aber daran das ich das Script von vorne bis hinten zigmal umgestellt und getestet habe. Und ich gebe zu nach mehreren Stunden hin und her testerrei den Überblick verloren zu haben (Keine Ausrede :) ).Wobei ich Fehler nicht ausschliessen kann. Hätte den Code bevor ich ihn gepostet habe, bereinigen sollen.

Aber neuer Tag neues Glück.

Werde mit deinen Hinweisen mein Glück versuchen.

Eine Frage habe ich da noch

Code:
//window.OberFormular.Formular1.auswahl.focus(); <!-- Fehler: Keine Ahnung, warum! ;)
Was heißt :"Fehler: Keine Ahnung, warum!" ?
 
Hi speedyggg,

naja, da haben eben meine wenigen Javascript-Kenntnisse versagt. ;)
Ich wollte eigentlich das DOM(Document Object Module), wie oben erwähnt, benutzen, allerdings erzeugt das im Browerfenster(vom IE) einen Fehler. Deshalb hab ich die Zeile auskommentiert und dagegen "getElementById()" benutzt. ;)

Vielleicht kann ja jemand anderes aus dem Forum erklären, warum das nicht klappt?!

Gut, probiere es aus und teile uns dann den Erfolg mit - bin noch den ganzen Tag im Büro und schaue hier ab und zu mal vorbei.

Ciao:
Da' Hacker
 
Hallo alle zusammen,

ich habe die Lösung meines Problems gefunden.

Hier die Lösung:
Im <Body> Bereich des Dokuments wo das Inputfeld steht auf das der Focus gehen soll:
<body onload="self.focus();document.form4.auswahl.focus()"></body>
eingeben.

Im Formbereich der Form einen Namen geben : <form name ="form4" .....>

document.form4.auswahl.focus()
form4 = Name der form
auswahl = Name des Auswahlfeldes

Viel Spaß

Speedyggg
 

Neue Beiträge

Zurück