확인란의 값을 가져 옵니까?


177

그래서 다음과 같은 코드가 있습니다.

<input class="messageCheckbox" type="checkbox" value="3" name="mailId[]">
<input class="messageCheckbox" type="checkbox" value="1" name="mailId[]">

현재 선택된 확인란의 값을 얻으려면 Javascript가 필요합니다.

편집 : 추가하려면 확인란이 하나만 있습니다.


1
자바 스크립트 코드 또는 jQuery가 필요하십니까?
Andrey Vorobyev

6
라디오 버튼을 사용하지 않는 이유는 무엇입니까?
PraveenVenu

내가 사이트를위한 플러그인을 작성하고 있기 때문에
Matthew '필수'Bryant

확인란이 하나만 필요한 경우 라디오 버튼을 사용하지 않는 이유는 무엇입니까? 이것이이 작업에 더 적합한 UI 구성 요소입니다.
탈 야론

@TalYaron 라디오 버튼을 선택 해제 할 수 있습니까? js 코드가 없다면 생각하지 않습니다. OP가 상자를 쉽게 선택 취소하려고 할 수 있습니다.
R3tep

답변:


256

최신 브라우저의 경우 :

var checkedValue = document.querySelector('.messageCheckbox:checked').value;

사용하여jQuery :

var checkedValue = $('.messageCheckbox:checked').val();

없는 순수한 자바 스크립트jQuery :

var checkedValue = null; 
var inputElements = document.getElementsByClassName('messageCheckbox');
for(var i=0; inputElements[i]; ++i){
      if(inputElements[i].checked){
           checkedValue = inputElements[i].value;
           break;
      }
}

9
@Mageek 여러 요소에 동일한 ID를 추가하는 것은 좋지 않습니다.
엔지니어

@Engineer 아니요, 각 확인란마다 다른 ID를 입력하십시오.
Mageek

3
@Engineer "바이트를 document.getElementById("foo").value();절약" 하고 루프 getElementById보다 속도가 빠르기 때문에 단순히 "계산을 저장하고"계산 해야 하기 때문 입니다 getElementsByTagName.
Mageek

9
jQuery의 경우 속성 값이 정의 된 경우 속성 값을 반환 .is(":checked")하는 올바른 방법이며, .val()정의되지 않은 경우에도 부울 값이 아닌 "on"을 반환합니다. jsfiddle.net/d5f7wnzu
Peter

1
document.querySelector('.messageCheckbox:checked').value확인란을 선택하지 않으면 TypeError를 생성합니다
Meisner

262

위의 어느 것도 나를 위해 일한 것이 아니라 단순히 이것을 사용하십시오.

document.querySelector('.messageCheckbox').checked;

행복한 코딩.


동의합니다. 당신은 내가 생각한 것을 확인했습니다. var chk1 = document.getElementById ( 'messageCheckbox'); 그렇게하면 "chk1"변수의 속성 (checked, enabled, style 등)을 참조 할 수 있습니다.
JustJohn

4
어디서 구했어 id? 설명해 주시겠습니까? class실제로 입력에 사용 된 질문을 한 사람 . 전체 코드를 제공 할 수 있다면 좋을 것입니다. 그래서 당신이 어디서 왔는지 이해할 수 있습니다id
devfaysal

3
이것은 OP에서 제공 한 예제 코드로는 작동하지 않습니다 ... 빠른 수정으로 문제를 해결할 수는 있지만 질문에 대답하지 않고 많은 투표를하는 이유가 궁금합니다.
Laurent S.

1
제안 된 답변을 수정하여 이것이 무엇을하고 OP가 어떻게 해결되는지 확장 할 수 있습니까?
Ro Yo Mi

2
@PradeepKumarPrabaharan 아마도 .value가 정의되지 않은 이유를 궁금해하는 사람들 (아마도 여러 항목에 id를 사용하지 않음)을 좋아하는 사람들입니다.

111

내 코드에서 이것을 사용하고 있습니다.

var x=$("#checkbox").is(":checked");

확인란을 선택 x하면 true 이고 그렇지 않으면 false입니다.


7
이것은 질문에 대답하지 않지만 확인란의 선택 여부를 결정하는 데 사용할 수 있습니다. 여전히 도움이되었으므로 +1입니다.
Kevin Jurkowski

5
질문에 대답하지 않지만 정확히 내가 찾던 것입니다.
phn

#checkbox변수가 예일 때 유용합니다 myCheckbox.
Optimae

15

일반 자바 스크립트로 :

function test() {
    var cboxes = document.getElementsByName('mailId[]');
    var len = cboxes.length;
    for (var i=0; i<len; i++) {
        alert(i + (cboxes[i].checked?' checked ':' unchecked ') + cboxes[i].value);
    }
}
function selectOnlyOne(current_clicked) {
    var cboxes = document.getElementsByName('mailId[]');
    var len = cboxes.length;
    for (var i=0; i<len; i++) {
        cboxes[i].checked = (cboxes[i] == current);
    }
}

4

$(document).ready(function() {
  var ckbox = $("input[name='ips']");
  var chkId = '';
  $('input').on('click', function() {
    
    if (ckbox.is(':checked')) {
      $("input[name='ips']:checked").each ( function() {
   			chkId = $(this).val() + ",";
        chkId = chkId.slice(0, -1);
 	  });
       
       alert ( $(this).val() ); // return all values of checkboxes checked
       alert(chkId); // return value of checkbox checked
    }     
  });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="checkbox" name="ips" value="12520">
<input type="checkbox" name="ips" value="12521">
<input type="checkbox" name="ips" value="12522">


4

이 질문에 직접 대답하지는 않지만 향후 방문자에게 도움이 될 수 있습니다.


변수의 상태를 계속 확인하지 않고 항상 확인란의 현재 상태를 유지하려는 onchange경우 이벤트를 수정하여 해당 변수를 설정할 수 있습니다.

이것은 HTML에서 수행 할 수 있습니다.

<input class='messageCheckbox' type='checkbox' onchange='some_var=this.checked;'>

또는 JavaScript로 :

cb = document.getElementsByClassName('messageCheckbox')[0]
cb.addEventListener('change', function(){some_var = this.checked})

2

이것을 사용하십시오 :

alert($(".messageCheckbox").is(":checked").val())

이것은 체크 박스에 "messageCheckbox"클래스가 있다고 가정하고 그렇지 않으면 입력이 체크 박스 유형인지 확인해야합니다.


2
<input class="messageCheckbox" type="checkbox" onchange="getValue(this.value)" value="3" name="mailId[]">

<input class="messageCheckbox" type="checkbox" onchange="getValue(this.value)" value="1" name="mailId[]">
function getValue(value){
    alert(value);
}

0

당신이 사용하는 경우 시맨틱 UI 반응 , data받는 두 번째 매개 변수로 전달되는 onChange이벤트입니다.

따라서 checked다음과 같이 속성에 액세스 할 수 있습니다 .

<Checkbox label="Conference" onChange={(e, d) => console.log(d.checked)} />

0

위의 어느 것도 상자를 선택하지 않았을 때 콘솔에서 오류를 발생시키지 않고 나에게 도움이되지 않았습니다. 훨씬 더 큰 양식 제출 기능) :

function checkbox() {
  var checked = false;
  if (document.querySelector('#opt1:checked')) {
     checked = true;
  }
  document.getElementById('msg').innerText = checked;
}
<input type="checkbox" onclick="checkbox()" id="opt1"> <span id="msg">Click The Box</span>


-3

내 프로젝트에서는 일반적으로이 스 니펫을 사용합니다.

var type[];
$("input[name='messageCheckbox']:checked").each(function (i) {
                type[i] = $(this).val();
            });

그리고 잘 작동합니다. 안부.


그렇게하는 비효율적 인 방법입니다.
AStopher
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.