2017-02-25 2 views
0

Ich mache ein Formular mit Radio-Taste unter anderem, wo eine Update-Funktion aufgerufen wird, wenn der Benutzer etwas ändern.Benutzerfreundliche Radio-Tasten klicken Erkennung

Allerdings habe ich ein Problem mit der Kombination dieser benutzerfreundlichen Optionsfelder, wo ich eine Schaltfläche um Text und die Schaltfläche, um es einfacher zu klicken möchten.

Ich habe Probleme mit der Erkennung des Klicks auf die Zone, den Text und die Schaltfläche zur gleichen Zeit. - Bisher habe ich es nur geschafft, indem ich die MouseEvent.target mit einer Liste von id (die ich jedem einzelnen Element geben muss) vergleiche, was in meinem Kopf einfach falsch klingt.

<div class="buttonZone"> 
    <input type="radio" id="choice1" /> 
    <label for="choice1">Choice 1</label> 
</div> 
<div class="buttonZone"> 
    <input type="radio" id="choice2" /> 
    <label for="choice2">Choice 2</label> 
</div> 

Alle Ideen würden sehr geschätzt werden.

+0

Mit Ihrer aktuellen Struktur wird sowohl unten als auch Text eine Überprüfung auslösen. Sie müssen der Eingabe jedoch auch einen Namen geben, damit der Browser das eine oder andere auswählen kann. – Ibu

Antwort

2

Sie können den Eingabe- und Beschriftungstext in ein label-Tag einfügen (im Gegensatz zu separaten Elementen, die mit dem Attribut for verknüpft sind), und der gesamte Bereich löst die Eingabe aus.

.buttonZone { 
 
    background: #eee; 
 
    border: 1px solid #aaa; 
 
    padding: 2em; 
 
    display: inline-block; 
 
}
<label class="buttonZone"> 
 
    <input type="radio" id="choice1" /> 
 
    <span>Choice 1</span> 
 
</label> 
 
<label class="buttonZone"> 
 
    <input type="radio" id="choice2" /> 
 
    <span>Choice 2</span> 
 
</label>

+0

Ich bin mir dessen bewusst. Wenn ich jedoch das Mausziel in JavaScript abrufe, scheint dies nicht zu funktionieren, da es immer noch die Eingabe- und Bereichselemente als separate Elemente behandelt und dadurch die Aktualisierungsfunktion nicht auslöst. - Und ich bin mir nicht sicher, wie ich das umgehen soll. –

+0

@Tc_ Sie müssen genauer sein. Scheint mir gut http://codepen.io/anon/pen/jBEyJy –

+0

Ich kann das sehen. Jetzt bin ich irgendwie fasziniert zu wissen, was ich falsch gemacht habe. - Aber vielen Dank! –

0

Haben Sie versucht, Werte zu den Tasten zu geben?

<div class="buttonZone"> 
    <input type="radio" id="choice1" value="Choice 1" /> 
</div> 
<div class="buttonZone"> 
    <input type="radio" id="choice2" value="Choice 2" /> 
</div> 
Verwandte Themen