2011-12-13 32 views
7

Xin chào ở đây là các mã bên dưới, tôi đã thử nhiều thứ nhưng tôi không thể nhận được giá trị của nút radio đã chọn.Như bạn có thể thấy tôi cần phải nhận giá trị đó cho các tình huống khác nhau.nhận giá trị được lựa chọn của nút radio trong trường hợp hành động

<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

thể trùng lặp của [Làm thế nào để nhận được giá trị của nút radio đã chọn?] (http://stackoverflow.com/questions/15839169/how-to-get-value-of-selected-radio-button) –

Trả lời

9

Bạn có thể sử dụng document.getElementsByName(<button_name>) hoặc document.getElementsByTagName("input") để có được một loạt các yếu tố đầu vào. Lặp qua các yếu tố đó để kiểm tra xem là checked.

Dưới đây là một ví dụ về cách để có được những giá trị của nút kiểm tra từ một tập hợp các nút radio với tên "chọn":

<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

Cảm ơn sudocode. nó đã giúp tôi, nhưng nó không phải là một cách tuyệt vời những gì tôi đã nhìn. Tôi đã giải quyết được sự cố với các mã đó. Hy vọng nó giúp ai đó ... function get_radio_value() { cho (var i = 0; i serhads

+0

@serhads Đó là khá khủng khiếp, bởi vì bạn làm document.getElementsByName() để có được mảng của bạn đầu vào ba lần trong tổng số (hai lần trong vòng lặp của bạn). Bạn nên thực hiện tra cứu DOM đó một lần duy nhất. – sudocode

+0

Tôi cập nhật câu trả lời của mình để hiển thị phương thức tương đương chính xác. – sudocode

2

tôi chọn để số mã cho một chức năng cần thiết. Người làm việc cho tôi được đưa ra dưới đây từ api.jquery.com. Hy vọng điều này sẽ giúp người khác.

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

Các selectedOption biến sẽ chứa giá trị của nút radio được chọn (ví dụ) o1 hoặc o2

Các vấn đề liên quan