В HTML у меня есть

 <form id="form">
        <input type="radio" name="stack" value="north" onClick="input(value)">north<br>
        <input type="radio" name="stack" value="east" onClick="input(value)" >east<br>
        <input type="radio" name="stack" value="west" onClick="input(value)">west<br>
        <input type="radio" name="stack" value="south" onClick="input(value)">south
</form>

И то, как я думал о выборе выбранного радио, похоже,

 var input=function(x)
    {
           console.log(x);
     }

Я на самом деле сначала закодировал, как,

 var input="north";
    var dd=function(x)
    {
       if(input==null)
       {
          return direction.map(function (c) {

        return data.map(function (d) {

            //console.log(d[c]);
                 return {x: d.month, y: d[c]};
             })    
         })
         }

            else{
                 return data.map(function (d) {
                   return {x: d.month , y : d[input]};
               }}

    }
    var dataIntermediate=dd(input);
    console.log(JSON.stringify(dataIntermediate));

Но теперь мне нужно взять значение input для этой функции onclick, и я не понимаю, как действовать дальше. Пожалуйста помоги.

0
Gayathri 10 Дек 2016 в 16:46

3 ответа

Лучший ответ

Изменить ввод (значение) на ввод (this.value) и готово

var global;

var input = function(x) {
    global = x;
    console.log(x);
};

// Checking the global variable in realTime
setInterval(function(){
  document.querySelector("#globalVariableValue").innerText = global;
},10);
<form id="form">
        <input type="radio" name="stack" value="north" onClick="input(this.value)">north<br>
        <input type="radio" name="stack" value="east" onClick="input(this.value)" >east<br>
        <input type="radio" name="stack" value="west" onClick="input(this.value)">west<br>
        <input type="radio" name="stack" value="south" onClick="input(this.value)">south
</form>

<br />

<span id="globalVariableValue"></span>
0
Randy Stiven Valentín 11 Дек 2016 в 04:49

Вам нужно запустить функцию, после этого указать «ID» для ввода, что сделает выбор vaule и выполнение функции точным.

Например:

    function something(){

if(document.getElementById('north').checked) {
      //do something
 } else {
      // do something else
 }

Вход выглядит как

<input type="radio" id="north" name="stack" value="north" onClick="functionName(this.value)">north<br>
0
imohd23 10 Дек 2016 в 13:58

Во-первых, не используйте встроенные атрибуты обработки событий HTML (onclick и т. Д.), Так как они создают «код спагетти», создают анонимные глобальные функции, которые изменяют привязку this, и не следуют Стандарт событий W3C DOM

Вот все, что вам нужно, чтобы получить значение переключателя, а затем передать это значение куда-нибудь:

var radVal = null;

// Once the DOM is ready...
window.addEventListener("DOMContentLoaded", function(){

  // Get all the radiobuttons
  var btns = document.querySelectorAll("[name=stack]");
  
  // Loop through them
  for(var i =0; i < btns.length; ++i){
    
      // Set up a click event handling callback function
      btns[i].addEventListener("click", function(evt){
        // That grabs the value from the clicked button
        radVal = evt.target.value;
        
        // You can call another function from here, but if that other function
        // needs the value, you don't need to pass it because you just set it
        // into a variable (radVal) which has a higher scope than this function
        foo();
        
        // Or, you can not call another function from here and just call the 
        // other function when you need to, but you will need to make sure that
        // this happens AFTER one of the radio buttons were clicked, otherwise
        // radVal will still be null
      });
  }
 
  function foo(){
    // Since this function can be called at any time, we should check to make
    // sure that one of the radio buttons has first been clicked.
    if(radVal){
      // radVal is not null, so a radio button was clicked
      console.log("foo says value is: " + radVal);
    } else {
      // radVal is still null so no button has been clicked yet
      console.log("foo says no button was clicked");      
    }
  }
  
  // This will show the else message because this is being called
  // before the radio buttons have been clicked
  foo();  
  


});
 <form id="form">
        <input type="radio" name="stack" value="north">north<br>
        <input type="radio" name="stack" value="east">east<br>
        <input type="radio" name="stack" value="west">west<br>
        <input type="radio" name="stack" value="south">south
</form>
0
Scott Marcus 10 Дек 2016 в 15:53