2012-04-12 76 views
0

我想建立两个按钮与onclick功能将插入“男”或“女”到另一个输入。onclick函数插入数据到输入字段与开关

这两个按钮有背景图片,点击时需要更改背景位置。我需要两个按钮才能相互切换。

任何人都可以用javascript或jQuery提出解决方案吗?

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

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

回答

0

如果你必须这样做以onclick那么我建议:

<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

我强烈建议从onclick移动到jQuery的不显眼的方法,使用该方法click()

​$('.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

或者,更简洁:

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

JS Fiddle demo

参考文献:

+0

谢谢,但我将如何更改两个按钮的背景位置? – Erik 2012-04-12 15:28:32

+0

显示你的CSS,并解释你希望'background-position'改变位置。显示你尝试过的[JS Fiddle demo](http://jsfiddle.net/)。 – 2012-04-12 15:30:11

+0

当我点击男性按钮时,女性按钮应该返回到其原始状态,反之亦然。无法弄清楚。 – Erik 2012-04-12 15:38:07

0

http://jsfiddle.net/vFsXt/溶液使用jQuery,避免使用内联属性为J​​S

+0

谢谢,但我将如何更改按钮的背景位置,以便它们相互切换?非常感谢您的帮助。 – Erik 2012-04-12 15:30:51

+0

为什么你建议避免内联js属性? – 2012-04-12 15:34:58

+0

@Brian谷歌会给你吨的链接,这是一个http://robertnyman.com/2008/11/20/why-inline-css-and-javascript-code-is-such-a-bad-东西/ – GillesC 2012-04-12 18:30:35

0

创建适用于按钮切换背景位置的CSS类(button-toggle-on)。然后在按钮onclick上切换按钮上的类。为此,最初需要切换。

<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

如果我推动男性按钮,女性会回到原来的状态,反之亦然?这是切换。 – Erik 2012-04-12 15:35:27

+0

现在就来。我没有意识到他们之前需要切换eacher。 – 2012-04-12 15:39:52