2011-12-13 14 views
7

Hola, aquí están los códigos abajo, probé muchas cosas pero no pude obtener el valor del botón de opción seleccionado. Como puedes ver, necesito obtener ese valor para diferentes situaciones.seleccionando el valor del botón de opción en caso de acción

<div style="display: inline-block"> 
     <div> 
       <a href="/Login/LogOut">Log Out</a><span> Welcome </span>YS User 1 noName  </div> 
     <br /> 
     <br /> 
     <br /> 
     <br /> 
     <input type="button" onclick="submitCreate();" value="New Survey" /><br /> 
     <input type="button" onclick="submitEdit();" value="Edit Survey" /><br /> 
     <input type="button" onclick="submitDelete();" value="Delete Survey" /><br /> 
     <input type="button" onclick="submitPreview();" value="Preview Survey" /> 
    </div> 
    <div style="display: inline-block"> 
<div> 
    <table class="MyTable"><thead><tr class="columnHead"><th scope="col"></th><th scope="col"><a href="/User/Index?sort=UserID&amp;sortdir=ASC">CreatedBy</a></th><th scope="col"><a href="/User/Index?sort=CreatedDate&amp;sortdir=ASC">Created Date</a></th><th scope="col"><a href="/User/Index?sort=IsRunning&amp;sortdir=ASC">Is Running</a></th></tr></thead><tbody><tr><td> <input name="selected" id="1" 

     type="radio" value="1" /></td><td>1</td><td>12/12/2011 3:43:57 PM</td><td>False</td></tr><tr class="altRow"><td> <input name="selected" id="2" 

     type="radio" value="2" /></td><td>1</td><td>12/13/2011 4:42:37 PM</td><td>False</td></tr><tr><td> <input name="selected" id="3" 

     type="radio" value="3" /></td><td>1</td><td>12/13/2011 6:27:38 PM</td><td>False</td></tr></tbody></table> 
</div> 
    </div> 
</body> 
</html> 
<script type="text/javascript"> 
    // var value = $$('input[name=selected]:checked')[0].get('value'); 
// var selectFoo; 
// $$('input[name=selected]').each(function (el) { 
//  if (el.checked == true) { 
//   selectFoo = el.value; 
//  } 
// }); 

    function getCheckedValue(radioObj) { 
     if (!radioObj) 
      return ""; 
     var radioLength = radioObj.length; 
     if (radioLength == undefined) 
      if (radioObj.checked) 
       return radioObj.value; 
      else 
       return ""; 
     for (var i = 0; i < radioLength; i++) { 
      if (radioObj[i].checked) { 
       return radioObj[i].value; 
      } 
     } 
     return ""; 
    }; 

    function submitCreate() { 
     var adress = "/User/CreateSurvey/"; 
     document.location = adress; 
    }; 

    function submitEdit() { 
     var adress = "/Den/Index/" + getCheckedValue('selected'); 
     document.location = adress; 
    }; 

    function submitDelete() { 
     var adress = "/User/DeleteSurvey/" + getCheckedValue('selected'); 
     document.location = adress; 
    }; 

    function submitPreview() { 
     var adress = "/User/PreviewSurvey/" + getCheckedValue('selected'); 
     document.location = adress; 
    }; 
</script> 
+0

posible duplicado de [Cómo obtener el valor de botón de selección seleccionado?] (http://stackoverflow.com/questions/15839169/how-to-get-value-of-selected-radio-button) –

Respuesta

9

Puede utilizar document.getElementsByName(<button_name>) o document.getElementsByTagName("input") para obtener un conjunto de elementos de entrada. Pasa por esos elementos para verificar cuál es checked.

Aquí es un ejemplo de cómo obtener el valor del botón comprobado partir de un conjunto de botones de radio con el nombre "seleccionado":

<html> 
    <head> 
     <script type="text/javascript"> 
      function get_radio_value() { 
      var inputs = document.getElementsByName("selected"); 
      for (var i = 0; i < inputs.length; i++) { 
       if (inputs[i].checked) { 
       return inputs[i].value; 
       } 
      } 
      } 

      function onSubmit() { 
      var id = get_radio_value(); 
      alert("selected input is: " + id); 
      } 
     </script> 
    </head> 
    <body> 
     <form onsubmit="onSubmit();"> 
      <input name="selected" value="1" type="radio"/>1<br/> 
      <input name="selected" value="2" type="radio"/>2<br/> 
      <input name="selected" value="3" type="radio"/>3<br/> 
      <input type="submit" value="submit"/> 
     </form> 
    </body> 
</html> 
+0

Gracias sudocode. me ayudó, pero no era exactamente lo que había visto. He resuelto el problema con esos códigos. Espero que ayude a alguien ... function get_radio_value() { for (var i = 0; i serhads

+0

@serhads Eso es bastante horrible, porque haces document.getElementsByName() para obtener tu matriz de entradas tres veces en total (dos veces dentro de tu ciclo for). Deberías hacer esa búsqueda DOM una sola vez. – sudocode

+0

Actualizo mi respuesta para mostrar el método equivalente correcto. – sudocode

2

que elegir un número de código dejo para una función determinada. El que funcionó para mí se da a continuación en api.jquery.com. Espero que esto ayude a otros.

HTML

<input type="radio" name="option" value="o1">option1</input> 
<input type="radio" name="option" value="o2">option2</input> 

JavaScript

var selectedOption = $("input:radio[name=option]:checked").val() 

El selectedOption la variable contendrá el valor del botón de opción seleccionado (es decir) o1 o o2

Cuestiones relacionadas