Я пытаюсь связать радио-вход с указанным вводом текста. Как видно на картинке, есть два варианта. Я знаю, что могу использовать for=""
, чтобы связать метку с радио-вводом, но как я могу также связать ее с текстовым вводом внизу, и наоборот, поэтому, когда я фокусируюсь на текстовом вводе, если фокусируется правильный переключатель?
ПРИМЕЧАНИЕ. Введенная сумма будет вставлена в базу данных, так что это самая важная часть этой формы. В настоящее время, если я нажму на $ Off, я все еще могу ввести число в % Off. Я не хочу, чтобы это произошло, чтобы пользователь не запутался.
Моя разметка:
<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">
$ 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">
% 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>