La liaison radio les boutons et le texte des entrées

J'essaie d'associer une radio de saisie avec saisie de texte. Comme vous pouvez le voir dans l'image, il y a deux options. Je sais que je peux utiliser for="" d'associer l'étiquette à l'entrée radio, mais comment puis-je également l'associer à la saisie de texte en dessous, et vice versa, de sorte que lorsque je se concentrer sur la saisie de texte, si se concentre le bon bouton radio?

La liaison radio les boutons et le texte des entrées

REMARQUE: Le montant inscrit sera inséré dans la base de données, de sorte que c'est la partie la plus importante de cette forme. Actuellement, si je clique sur $de rabais, je peux toujours entrer un nombre en %Off. Je ne veux pas que cela arrive, afin que l'utilisateur ne pas confondre.

Balisage:

<div class="row-fluid control-group">
  <div class="span7 pull-left">
    <label class="radio" for="discount-dollars">
      <input type="radio" name="discount" id="discount-dollars" value="dollars" checked="checked">
      &#36; Off
    </label>
    <div class="input-append">
      <input type="text" name="discount-dollars-amount" id="discount-dollars-amount" class="input-small dollars" placeholder="enter amount">
      <span class="add-on">.00</span>
    </div>
  </div><!-- .span7 .pull-left -->

  <div class="span5">
    <label class="radio" for="discount-percent">
      <input type="radio" name="discount" id="discount-percent" value="percent">
      &#37; Off
    </label>
    <input type="text" name="discount-percent-amount" id="discount-percent-amount" class="input-small percent" placeholder="enter amount" disabled="disabled">
  </div>
</div><!-- .row-fluid .control-group -->

<script type="text/javascript">

$(function (){
  $("form input[type=radio]").click(function (){

  //get the value of this radio button ("dollars" or "percent")
  var value = $(this).val();

  //find all text fields...
  $(this).closest("form").find("input[type=text]")

    //...and disable them...
    .attr("disabled", "disabled")                     

  //...then find the text field whose class name matches
  //the value of this radio button ("dollars" or "percent")...
  .end().find("." + value)

    //...and enable that text field
    .removeAttr("disabled")          
  .end();
  });
});

</script>
Ce que la langue/de la technologie est ce? Je sais qu'il consiste au minimum en HTML, mais il y a d'autres impliqués?
Je pense que jQuery est une bonne solution, je ne suis pas le meilleur à la construction de fonctions encore.

OriginalL'auteur chris_s | 2012-02-09