2011-12-13 12 views
7

Witam, oto kody poniżej, próbowałem wielu rzeczy, ale nie mogłem uzyskać wartości wybranego przycisku radiowego. Jak widzisz, potrzebuję uzyskać tę wartość dla różnych sytuacji.uzyskanie wybranej wartości przycisku opcji w przypadku działania

<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

możliwe duplikat [Jak uzyskać wartość wybrany przycisk radiowy?] (http://stackoverflow.com/questions/15839169/how-to-get-value-of-selected-radio-button) –

Odpowiedz

9

Można użyć document.getElementsByName(<button_name>) lub document.getElementsByTagName("input") uzyskać szereg elementów wejściowych. Zapętlić te elementy, aby sprawdzić, który jest checked.

Oto przykład, w jaki sposób uzyskać wartość przycisku sprawdzane z zestawu przycisków radiowych o nazwie „wybrany”:

<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

Dzięki sudocode. to mi pomogło, ale nie było to z zewnątrz, na co patrzyłem. Rozwiązałem problem z tymi kodami. Mam nadzieję, że to pomoże komuś ... funkcja get_radio_value() { dla (var i = 0; i serhads

+0

@serhads To jest raczej okropne, ponieważ robisz document.getElementsByName(), aby uzyskać trzy razy większą tablicę danych wejściowych (dwa razy większą w pętli for). Powinieneś zrobić to wyszukiwanie DOM tylko raz. – sudocode

+0

Uaktualniam moją odpowiedź, aby pokazać prawidłową równoważną metodę. – sudocode

2

I przełącz niech numer kodu dla wybranej funkcji. Ten, który pracował dla mnie jest podany poniżej z api.jquery.com. Mam nadzieję, że to pomoże innym.

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() 

Zmienna selectedOption będzie zawierać wartość przycisku wybrany radiowej (tj) O1 lub O2

Powiązane problemy