изменить значение поля при выборе переключателей - PullRequest
6 голосов
/ 24 августа 2009

Я хочу изменить значение скрытого поля ввода, когда выбраны переключатели:

    <input type="radio" name="r1" value="10" />10
    <br/>
    <input type="radio" name="r1" value="45" />45
    <br/>
    <input type="hidden" name="sum" value="" />

например, когда пользователь нажимает одну из кнопок, значение скрытого поля меняется на это значение.

Ответы [ 4 ]

13 голосов
/ 24 августа 2009

Используйте свойство onClick:

<input type="radio" name="r1" value="10" onClick="document.getElementById('hidfield').value=this.value"/>10
    <br/>
    <input type="radio" name="r1" value="45" onClick="document.getElementById('hidfield').value=this.value"/>
    45
    <br/>
    <input type="hidden" name="sum" value="" id="hidfield" />
1 голос
/ 24 августа 2009

Используя jQuery, это будет:

$(":radio").click(function () {
    var inputValue = $this.val();
    $(":hidden[name='sum']").val() = inputValue;
$(":hidden[name='sum']").name() = "lalala";
    });

Я не проверил дважды этот код, поэтому, возможно, потребуется немного изменить его.

1 голос
/ 24 августа 2009

Вы можете попробовать например

<input type="radio" id="radio1r1" name="r1" value="10" />10
<br/>
<input type="radio" id="radio2r1" name="r1" value="45" />45
<br/>
<input type="hidden" name="sum" value="" />

jQuery("input[id^='radio']").click(function() {
    jQuery("input[name='sum']").val(jQuery(this).val());
}

Итак, когда пользователь нажимает на каждое радио, мы обрабатываем его по различным идентификаторам с одинаковым началом.

0 голосов
/ 24 августа 2009

подключите событие onclick для переключателя «r1». Обычно я бы предлагал событие onchange, но в IE оно не запускается, пока пользователь не «размывает» переключатель.

Если вы используете фреймворк, такой как jQuery, подключайте события приятным ненавязчивым способом ... но если вы хотите быстро и грязное решение, просто добавьте события в строку.

<input type="radio" name="r1" value="10" onclick="doIt(this);"/>10
<br/>
<input type="radio" name="r1" value="45" onclick="doIt(this);"/>45
<br/>
<input type="hidden" name="sum" value="" />

<script>
  function doIt(obj){
    //alert('my value is now: ' + obj.value);
    obj.form.elements['sum'].value = obj.value;//set hidden field to radio value
  }
</script>
...