2012-04-12 5 views
0

Ich möchte zwei Tasten mit einer onclick Funktion, die "männlich" oder "weiblich" in einen anderen Eingang einfügen bauen.onclick Funktion zum Einfügen von Daten in Eingabefeld mit Toggle

Die beiden Schaltflächen haben Hintergrundbilder und müssen die Hintergrundposition ändern, wenn sie angeklickt werden. Ich brauche beide Knöpfe um voneinander zu schalten.

Kann jemand eine Lösung mit Javascript oder Jquery vorschlagen?

<input type="button" class="gnM" onclick="???????"> 
<input type="button" class="gnF" onclick="???????"> 

<input class="req-string gender" id="gender" name="gender"> 

Antwort

0

Wenn Sie dies mit onclick tun müssen, dann würde ich vorschlagen:

<input type="button" class="gnM" onclick="$('#gender').val($(this).val())" value="male" /> 
<input type="button" class="gnM" onclick="$('#gender').val($(this).val())" value="female" /> 

JS Fiddle demo.

ich stark von einem onclick zu einer jQuery unauffälligen Methode bewegen würde vorschlagen, mit der click() Methode:

​$('.gnM').click(
    function(){ 
     var that = $(this); 
     $('#gender').val(that.val()); 
     that.css('background-position','bottom right'); 
    });​​​​​​ 

JS Fiddle demo.

$('.gnM').click(
    function(){ 
     var that = $(this); 
     $('#gender').val(that.val()); 
     that.siblings().removeClass('active'); 
     that.toggleClass('active'); 
    });​ 

JS Fiddle demo:

für Hin- und Herschalten zu ermöglichen.

Oder prägnanter:

$('.gnM').click(
    function(){ 
     var that = $(this); 
     $('#gender').val(that.val()); 
     that.toggleClass('active').siblings().removeClass('active'); 
    });​ 

JS Fiddle demo.

Referenzen:

+0

Vielen Dank, aber wie würde ich die Hintergrund-Position der beiden Tasten ändern? – Erik

+0

Zeigen Sie Ihr CSS und erklären Sie, wie Sie die 'Hintergrund-Position' 'ändern möchten. Zeigen Sie eine [JS Fiddle Demo] (http://jsfiddle.net/) von dem, was Sie versucht haben. –

+0

Wenn ich auf die männliche Taste klicke, sollte die weibliche Taste in ihren ursprünglichen Zustand zurückkehren und umgekehrt. Kann es nicht herausfinden. – Erik

0

http://jsfiddle.net/vFsXt/ Lösung jQuery verwenden, vermeiden, mit Inline-Attribut für js

+0

Danke, aber wie würde ich die Hintergrund-Position der Taste ändern, damit sie sich gegenseitig ausschalten? Schätze wirklich deine Hilfe. – Erik

+0

Warum empfehlen Sie, inline js-Attribute zu vermeiden? –

+0

@Brian Google wird Ihnen Tonnen von Links darüber geben, hier ist eine http://robertnyman.com/2008/11/20/why-inline-css-and-jascript-code-is-such-a-bad- thing/ – GillesC

0

eine CSS-Klasse erstellen (button-toggle-on), der die ein- und Hintergrund-Position für die Tasten gilt. Dann in der Taste onclick schalten Sie die Klasse auf der Schaltfläche. Damit dies funktioniert, muss man zunächst eingeschaltet werden.

<input type="button" class="gnM button-toggle-on" onclick="$('#gender').val('male'); $('.gnF, .gnM').toggleClass('button-toggle-on');" /> 
<input type="button" class="gnF" onclick="$('#gender').val('female'); $('.gnF, .gnM').toggleClass('button-toggle-on');" /> 
+0

Wenn ich den Male Button drücke, kehrt der Female in seinen ursprünglichen Zustand zurück und umgekehrt? Dies ist der Schalter. – Erik

+0

Es wird jetzt. Ich wusste nicht, dass sie vorher noch einen anderen Eacher wechseln mussten. –