在无线电点击时为输入添加值,然后删除

时间:2015-03-13 13:21:32

标签: javascript jquery html

我有一个捐赠表格,其中一个选项需要填充一定数量,因为它有固定的价格点。我发现并运行了一些可以正常工作的代码,可以通过选择无线电输入来填充输入,但我希望它能够以某种方式切换,如果我选择另一个选项,则会删除已填充的数量。那可能吗?

以下是我现在的工作:

$('input#yearCaring').on('change', function() {
  $('input[name="Amount"]').val($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div>
  <input type="radio" name="In Honor/Memory Of" value="No" />
  <label>No Thanks</label>
  <br />
  <input type="radio" name="In Honor/Memory Of" id="yearCaring" value="100" />
  <label>Year of Caring</label>
  <br />
  <input type="radio" name="In Honor/Memory Of" value="In Memory" />
  <label>In Memory</label>
  <br />
  <input type="text" name="In Memory Note" style="display: none;" value="" />
  <input type="radio" name="In Honor/Memory Of" value="In Celebration" />
  <label>In Celebration</label>
  <br />
  <input type="text" name="In Celebration Note" style="display: none;" value="" />
</div>

<label>Amount (Canadian Dollars):</label>
<input type="text" name="Amount" required="" value="" />

我怎么去'切换'呢?

fiddle

2 个答案:

答案 0 :(得分:3)

您可以检查所有单选按钮,只有在匹配某个ID时才应用该值:

&#13;
&#13;
$('input:radio').change(function () {
    $('input[name="Amount"]').val( (this.id == 'yearCaring') ? this.value : '').prop('disabled',(this.id == 'yearCaring') ? true : false);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form>
    <div>
        <input name="In Honor/Memory Of" type="radio" value="No" />
        <label>No Thanks</label>
        <br />
        <input name="In Honor/Memory Of" id="yearCaring" type="radio" value="100" />
        <label>Year of Caring</label>
        <br />
        <input name="In Honor/Memory Of" type="radio" value="In Memory" />
        <label>In Memory</label>
        <br />
        <input name="In Memory Note" style="display: none;" type="text" value="" />
        <input name="In Honor/Memory Of" type="radio" value="In Celebration" />
        <label>In Celebration</label>
        <br />
        <input name="In Celebration Note" style="display: none;" type="text" value="" />
    </div>
    <label>Amount (Canadian Dollars):</label>
    <input name="Amount" required="" type="text" value="" />
</form>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

使用类似的东西

$('input[name="In Honor/Memory Of"]').on('change', function() {
        $('input[name="Amount"]').val($(this).val());
});