[javascript] jQuery를 통해 어떤 라디오 버튼이 선택되었는지 어떻게 알 수 있습니까?


Answers

이것을 사용하십시오 ..

$("#myform input[type='radio']:checked").val();
Question

두 개의 라디오 버튼이있어서 선택한 하나의 값을 게시하고 싶습니다. jQuery로 어떻게 가치를 얻을 수 있습니까?

나는이 모든 것을 다음과 같이 얻을 수있다.

$("form :radio")

어느 것이 선정되었는지 어떻게 알 수 있습니까?




단일 라디오 버튼이 여러 개있는 경우

var myRadio1 = $('input[name=radioButtonName1]');
var value1 = myRadio1.filter(':checked').val();

var myRadio2 = $('input[name=radioButtonName2]');
var value2 = myRadio2.filter(':checked').val();

이것은 나를 위해 일하고있다.




모든 라디오 받기 :

var radios = jQuery("input[type='radio']");

필터링 된 것을 얻으려면 필터링하십시오.

radios.filter(":checked")



여기에 양식을 쓰고 검사 된 라디오를받는 방법을 설명합니다.

myForm이라는 양식 사용 :

<form id='myForm'>
    <input type='radio' name='radio1' class='radio1' value='val1' />
    <input type='radio' name='radio1' class='radio1' value='val2' />
    ...
</form>

양식에서 값 가져 오기 :

$('#myForm .radio1:checked').val();

양식을 게시하지 않으려는 경우 다음을 사용하여 양식을 더 단순화합니다.

<input type='radio' class='radio1' value='val1' />
<input type='radio' class='radio1' value='val2' />

그런 다음 확인 된 값을 얻는 것은 다음과 같습니다.

    $('.radio1:checked').val();

입력에 클래스 이름을 사용하면 입력 스타일을 쉽게 지정할 수 있습니다.




이 질문 에서 각 라벨에 대한 click 이벤트 내에있을 때 현재 선택된 input 에 액세스하는 다른 방법을 생각해 냈습니다. 새롭게 선택된 inputlabel 의 클릭 이벤트 이후까지 갱신되지 않기 때문입니다.

TL, DR

$('label').click(function() {
  var selected = $('#' + $(this).attr('for')).val();

  ...
});

$(function() {
  // this outright does not work properly as explained above
  $('#reported label').click(function() {
    var query = $('input[name="filter"]:checked').val();
    var time = (new Date()).toString();

    $('.query[data-method="click event"]').html(query + ' at ' + time);
  });

  // this works, but fails to update when same label is clicked consecutively
  $('#reported input[name="filter"]').on('change', function() {
    var query = $('input[name="filter"]:checked').val();
    var time = (new Date()).toString();

    $('.query[data-method="change event"]').html(query + ' at ' + time);
  });

  // here is the solution I came up with
  $('#reported label').click(function() {
    var query = $('#' + $(this).attr('for')).val();
    var time = (new Date()).toString();

    $('.query[data-method="click event with this"]').html(query + ' at ' + time);
  });
});
input[name="filter"] {
  display: none;
}
#reported label {
  background-color: #ccc;
  padding: 5px;
  margin: 5px;
  border-radius: 5px;
  cursor: pointer;
}
.query {
  padding: 5px;
  margin: 5px;
}
.query:before {
  content: "on " attr(data-method)": ";
}
[data-method="click event"] {
  color: red;
}
[data-method="change event"] {
  color: #cc0;
}
[data-method="click event with this"] {
  color: green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form id="reported">
  <input type="radio" name="filter" id="question" value="questions" checked="checked">
  <label for="question">Questions</label>

  <input type="radio" name="filter" id="answer" value="answers">
  <label for="answer">Answers</label>

  <input type="radio" name="filter" id="comment" value="comments">
  <label for="comment">Comments</label>

  <input type="radio" name="filter" id="user" value="users">
  <label for="user">Users</label>

  <input type="radio" name="filter" id="company" value="companies">
  <label for="company">Companies</label>

  <div class="query" data-method="click event"></div>
  <div class="query" data-method="change event"></div>
  <div class="query" data-method="click event with this"></div>
</form>




 $(".Stat").click(function () {
     var rdbVal1 = $("input[name$=S]:checked").val();
 }



JavaScript 배열에서 모든 라디오 버튼 값을 검색하려면 다음 jQuery 코드를 사용하십시오.

var values = jQuery('input:checkbox:checked.group1').map(function () {
    return this.value;
}).get();



DEMO : https://jsfiddle.net/ipsjolly/xygr065w/

	$(function(){
	    $("#submit").click(function(){      
	        alert($('input:radio:checked').val());
	    });
	 });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
       <tr>
         <td>Sales Promotion</td>
         <td><input type="radio" name="q12_3" value="1">1</td>
         <td><input type="radio" name="q12_3" value="2">2</td>
         <td><input type="radio" name="q12_3" value="3">3</td>
         <td><input type="radio" name="q12_3" value="4">4</td>
         <td><input type="radio" name="q12_3" value="5">5</td>
      </tr>
    </table>
<button id="submit">submit</button>




또 다른 옵션은 다음과 같습니다.

$('input[name=radioName]:radio:checked').val()



이 잘 작동합니다.

$('input[type="radio"][class="className"]:checked').val()

실무 데모

:checked selector는 checkboxes , radio buttons 및 select 요소에 대해 작동합니다. 선택 요소에 대해서만 :selected 선택기를 사용하십시오.

for :checked Selector




이것을 사용하십시오 :

value = $('input[name=button-name]:checked').val();



JSF 생성 라디오 버튼 ( <h:selectOneRadio> 태그 사용)에서 다음 작업을 수행 할 수 있습니다.

radiobuttonvalue = jQuery("input[name='form_id\:radiobutton_id']:checked").val();

여기서 selectOneRadio ID는 radiobutton_id 이고 양식 ID는 form_id 입니다.

jQuery는이 속성을 사용하기 때문에 ( 이름 은 JSF가 제어 ID와 유사한 방식으로 자동 생성되므로) id 대신 name 을 사용해야한다.




내가해야 할 일은 C # 코드를 단순화하는 것인데, 이는 프론트 엔드 자바 스크립트에서 가능한 한 많이 수행하는 것입니다. DNN에서 작업 중이므로 필드 세트 컨테이너를 사용하고 있으며 자체 양식이 있습니다. 따라서 양식을 추가 할 수 없습니다.

3 중 어떤 텍스트 상자가 사용되고 있는지 테스트해야하며, 그렇다면 검색 유형이 무엇입니까? 값 포함, 값 포함, 값의 완전 일치로 시작합니다.

HTML :

<fieldset id="fsPartNum" class="form-inline">
<div class="form-group">
    <label for="txtPartNumber">Part Number:</label>
    <input type="text" id="txtPartNumber" class="input-margin-pn" />
</div>
<div class="form-group">
    <label for="radPNStartsWith">Starts With: </label>
    <input type="radio" id="radPNStartsWith" name="partNumber" checked  value="StartsWith"/>
</div>
<div class="form-group">
    <label for="radPNContains">Contains: </label>
    <input type="radio" id="radPNContains" name="partNumber" value="Contains" />
</div>
<div class="form-group">
    <label for="radPNExactMatch">Exact Match: </label>
    <input type="radio" id="radPNExactMatch" name="partNumber" value="ExactMatch" />
</div>

그리고 내 JavaScript는 다음과 같습니다.

        alert($('input[name=partNumber]:checked', '#fsPartNum').val()); 
    if(txtPartNumber.val() !== ''){
        message = 'Customer Part Number';
    }
    else if(txtCommercialPartNumber.val() !== ''){

    }
    else if(txtDescription.val() !== ''){

    }

ID가있는 태그가 있으면 사용할 수 있습니다. DNNers에게는 이것이 좋은 점입니다. 여기서 최종 목표는 SQL Server에서 부품 검색을 시작하는 데 필요한 중간 수준 코드를 전달하는 것입니다.

이 방법으로 훨씬 복잡한 이전 ​​C # 코드도 복사 할 필요가 없습니다. 무거운 짐을 싣기가 바로 여기서 이루어지고 있습니다.

나는 이것을 위해 약간 보았고, 그것을 작동 시키려면 그걸로 땜질을해야만했다. 그래서 다른 DNNers에 대해서는 잘만하면 쉽게 찾을 수 있습니다.




이 작동합니다.

$("input[name='radioName']:checked").val()

""입력을 중심으로 사용 된 것을 주목하십시오. 피터 J의 솔루션을 좋아하지는 않습니다.




Related