Ankündigung

Einklappen
Keine Ankündigung bisher.

Radiobuttons

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Gast-Avatar
    Ein Gast erstellte das Thema Radiobuttons.

    Radiobuttons

    Hallo zusammen!

    Ich hab ein Formular mit Radiobuttons.
    Bei den Radiobuttons kann man das Geschlecht wählen (m oder w).
    Im Feld Darunter kann man die gewünschte Anrede reinschreiben (Herr, Frau,...).

    Jetzt möchte ich, dass wenn man bei dem Radiobutton m wählt, automatisch im Feld Anrede Herr reingeschrieben wird (als Vorschlag, wenn's dem User nicht passt kann er's ja noch ändern) und bei w logischerweise Frau.

    Ich werd das wohl mit Javascript machen müssen, da das Formular da noch nicht abgeschickt werden soll.

    Ich hab schon mal eine Funktion geschrieben:
    Code:
    function anrede()
    {
    	var check = document.FORMULAR.GESCHLECHT.value;
    	if(check == "m")
    	{
    		document.FORMULAR.TITEL1.value = Herr;
    	}
    	else if(check == "w")
    	{
    		document.FORMULAR.TITEL1.value = Frau;
    	}
    }
    und im Formular das hier:
    Code:
    onChange="anrede()"
    Aber leider funktioniert das noch nicht...

    Ich vermute mal, das das value in der Funktion falsch ist, da das Eine ja fix auf m und das Zweite fix auf w steht, es gehört hier wahrscheinlich irgendwas mit check hin, oder?
    Die große Frage ist aber: Was gehört hier hin?
    Ob onChange stimmt weiß ich auch nicht sogenau, bei normalen Feldern schon, aber bei Radiobuttons?

    Vielen Dank im Vorraus für jede Antwort!

  • Gast-Avatar
    Ein Gast antwortete
    ich sag lieber nichts weiter dazu

    ausser:

    this.form.tag.value == document.form.tag.value

    In dem hiesigen Beispielcodes wären das dokument gewesen hiraisch abwärts gegliedert this -> form -> tag -> value

    oder wir reden gerade aneinander vorbei ...

    nundenn es sei wie es sei :P

    Einen Kommentar schreiben:


  • XLB
    antwortet
    Zitat von J33d3X
    this ... ist eine object variable welche sich auf das aktuelle object bezieht in diesem falle object form
    Das aktuelle Objekt wäre das <input>-Tag, indem der Eventhandler, bzw. der entsprechende JS-Code mit dem "this" notiert ist. In dem hiesigen Beispielcodes wären das die jeweiligen Radiobuttons gewesen, nicht das Formular selber.

    Einen Kommentar schreiben:


  • XLB
    antwortet
    Wollte doch meinen - war ein Missverständnis ...

    Ein "valides" Formular-Tag hat ein id-Attribut, keinen "name" !!! Daher wäre, falls auf deiner Seite nur ein Formular existiert, die "einfache" generelle Schreibweise ...

    Code:
    onchange="document.form.TITEL1.value='Herr'"
    ... vorzuziehen, ohne einen expliziten Formularnamen zu nennen. Ansonsten müsste man XHTML- und DOM-konform dem Formular eine ID verpassen und mittles getElementById() auf einzelne Elemente zugreifen.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wow

    Code:
    Das "this" im JS-Code ist nicht nötig, eigentlich sogar falsch.
    this ... ist eine object variable welche sich auf das aktuelle object bezieht
    in diesem falle object form
    ( js ... jede funktion ist ein object ... )
    erkläre mir mal bitte was daran falsch ist " an this "

    unter umständen einfach mal

    http://www.webmatze.de/webdesign/jav...p_part_one.htm

    lesen

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Ja, diese schon, aber nicht mit this vorne.

    Ja, es hat ein name-Attribut und heißt FORMULAR (nicht sehr einfallsreich, aber funktionell).

    Einen Kommentar schreiben:


  • XLB
    antwortet
    Ähh ...

    Was ist "FORMULAR" ? Hat das "form"-Tag ein "name"-Attribut ?

    Doch , die Schreibweise ...

    Code:
    onchange="form.NAME_DES_INPUT.value='XYZ'"
    ... funktioniert sehr wohl : Link

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    @XLB

    Hat auch nicht funktioniert :wink:

    Hab mir erlaubt das aber einfach so zu ändern:
    Code:
    onchange="document.FORMULAR.TITEL1.value='Herr'"

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hm, also wenn ich das jetzt richtig verstanden hab, dann würde meine Lösung zwar überall funktionieren, aber deine entspricht mehr den Regeln...
    (der neue Operator war mir bisher noch nicht bekannt, werd mich bei Gelegenheit mal über den genauer informieren)

    Deine Hat aber noch einen Vorteil:
    Sie ist weniger Schreibaufwand :wink:
    Aber du hast schon recht, bei meinem Code steht dann immer was halbfertiges drin wenn etwas nicht gewählt wurde, das einfach ignoriert wird.
    Bei deinem steht entweder was drin oder nicht, keine halben Sachen. Ist besser stimmt!

    Ich hab also meine if + ifelse jetzt ersetzt durch
    PHP-Code:
    <?
    $m_checked ='m'== $_SESSION['gender'] ?  'checked="checked"' : false; 
    $w_checked ='w'== $_SESSION['gender'] ?  'checked="checked"' : false;
    ?>
    und im Formular dann
    Code:
    <?=$m_check?>
    <?=$w_check?>
    Danke nochmal für den Hinweis!
    Bin noch Anfänger und kann solche Tipps gut gebrauchen!

    Einen Kommentar schreiben:


  • XLB
    antwortet
    Das "this" im JS-Code ist nicht nötig, eigentlich sogar falsch. Das es bei "Seeker" trotzdem funktionuckelt und der/die Browser keinen Laufzeitfehler erzeugen wundert etwas.

    So reicht's (und so ist's eigentlich richtig) :

    Code:
    onchange="form.title1.value='diese'"
    oder

    Code:
    onchange="document.form.title1.value='diese'"
    Bei der "validen" XHTML 1.0 Stric Notation eines Formulars muss innerhalb der "form"-Tags ein Block-Element (div, span, fieldset, ...) folgen, dass die eigentlichen Formularelemente umschliesst.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    mit fehler meine ich meist validitäts probleme

    sauberer code nicht nur in php auch in html

    es wäre doch super wenn jeder der code schreibt ob in php oder html sich an gewisse regeln halten würde ??

    in c, java oder anderen würde der kompiler auf deinem desktop erscheinen und dir einen "vogel" zeigen aber in php oder html iss das ja alles nich so schlimm funtzt ja

    ...

    das meine ich mit sauberem code "fehler" vermeiden

    :wink:


    mfg

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Nein, gibt keinen Fehler.

    Wenn m checked dann steht im m radio checked="checked" und im w radio steht dann ""="checked".

    --> weil das checked das immer drin ist unter Anführungszeichen ist ("").

    Warum sollte das einen Fehler verursachen?
    Hab's bis jetzt nur in IE probiert (hab sonst keinen Browser auf dem PC hier).
    Kann das sein, dass das im Firefox oder ähnlichem falsch gemacht wird? Oder was meinst du mit Fehler?

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    wenn m checked ...

    steht im w radio <..... ="checked" />

    wenn das mal kein fehler gibt

    besser wäre
    if($_SESSION['GESCHLECHT'] == "m")
    {
    $m_check = 'checked="checked"';
    }
    else if($_SESSION['GESCHLECHT'] == "w")
    {
    $w_check ='checked="checked"';
    }


    [edit]
    mit dem ternär operator ( ? : ) hast du
    a) die if else ersetzt
    b) die variablendeclaration gemacht

    also wäre eventuell der schreibweise
    Code:
    $m_checked='m'==$_SESSION['gender'] ?  'checked="checked"' : false;
    $w_checked='w'==$_SESSION['gender'] ?  'checked="checked"' : false;
    den vorzug zu geben

    mfg

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Hab's schon!

    PHP-Code:
    <?
    if($_SESSION['GESCHLECHT'] == "m")
    {
        $m_check = "checked";
    }
    else if($_SESSION['GESCHLECHT'] == "w")
    {
        $w_check = "checked";
    }
    ?>
    [code]
    <?=$m_check?>="checked"
    <?=$w_check?>="checked"
    [code]

    Danke nochmal für die Hilfe!

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    dem radio button ein value geben value="m"

    Code:
    $m_checked='m'==$_SESSION['gender'] ?  'checked="checked"' : false;
    $w_checked='w'==$_SESSION['gender'] ?  'checked="checked"' : false;
    
    <form>
    <input type="radio" name="gender" value="m" onchange="this.form.title1.value='diese'" <?php echo $m_checked; ?> />
    <input type="radio" name="gender" value="w" onchange="this.form.title1.value='jenes'" <?php echo $w_checked; ?>  />
    <input type="text" name="title1" value="" />
    </form>

    Einen Kommentar schreiben:

Lädt...
X