Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Передача значения в поле INPUT (https://javascript.ru/forum/events/31991-peredacha-znacheniya-v-pole-input.html)

kosinus2012 28.09.2012 15:03

Передача значения в поле INPUT
 
Добрый день!
Допустим есть документ со структурой:
Код:

<label>
<input type="radio" value="young" onClick="insert(0);"/>младше 18
</label>
<label>
<input type="radio" value="mature" onClick="insert(1);"/> старше 50
</label>
<input type="text" name="val1" value=""/>


Подскажите пож-та как лучше сделать так, чтобы при нажатии на определенную кнопку radio, содержимое label выводилось в атрибуте <input type="text" name="val1" value=""/>

Реализовал вот так вот, но громоздко:
<script>
  function insert(obj){
         document.getElementsByName('val1')[0].value = document.getElementsByTagName('label')[obj].lastChild.nodeValue;
}
</script>

Может есть проще и красивее решение (без всяких innerHTML и проходом replace) ?

cyber 28.09.2012 15:52

<!DOCTYPE HTML>
<html>
  <head> </head>
  <body>
    
 <form id='fm'>   
<label>
<input type="radio" value="young" />младше 18
</label>
<label>
<input type="radio" value="mature" /> старше 50
</label>
   
<input id='inp' type="text" name="val1" value=""/>
    </form>    
    
    <script>

    !function () {
      
        var form =  document.getElementById('fm');
        var inpVal = document.getElementById('inp');
      
       form.onclick = OnFormClick;
      
      
      function OnFormClick (e) {
      
       var target = e.target || event.scrElement;
         
       
        if(target.type != 'radio') return;
        
        
         inpVal.value = target.value;
      }
           
      }();
    </script>

  </body>
</html>

kosinus2012 28.09.2012 16:04

<script>

    !function () {
      
        var form =  document.getElementById('fm');
        var inpVal = document.getElementById('inp');
      
       form.onclick = OnFormClick;
      
      
      function OnFormClick (e) {
      
       var target = e.target || event.scrElement;
         
       
        if(target.type != 'radio') return;
        
       inpVal.value = target.value;
      }
           
      }();
    </script>


Я имел ввиду "содержимое label выводилось", т.е. младше 18, и старше 50, заполняли <input>

Спасибо!!!! :) докручу, смысл понял)


Часовой пояс GMT +3, время: 17:42.