Programing

jQuery에서 확인란 값을 검색하는 방법

lottogame 2020. 4. 11. 09:41
반응형

jQuery에서 확인란 값을 검색하는 방법


jQuery 를 사용 하여 선택된 확인란 값을 가져 와서 텍스트 영역에 즉시 넣는 방법은 무엇입니까?

이 코드와 마찬가지로

<html>
  <head>
  </head>

  <body>
    <div id="c_b">
      <input type="checkbox" value="one_name" checked>
      <input type="checkbox" value="one_name1">
      <input type="checkbox" value="one_name2">
    </div>  

    <textarea id="t"></textarea>
  </body>
</html>

이 경우 id="c_d"업데이트됩니다 아약스 , altCognito의 코드의 아래가 작동하지 않습니다. 좋은 해결책이 있습니까?


다음은 작동하는 것입니다 ( 예 참조 ).

 function updateTextArea() {         
     var allVals = [];
     $('#c_b :checked').each(function() {
       allVals.push($(this).val());
     });
     $('#t').val(allVals);
  }
 $(function() {
   $('#c_b input').click(updateTextArea);
   updateTextArea();
 });

최신 정보

몇 개월 후 ID가 변경되면 위의 작업을 유지하는 방법에 관한 또 다른 질문이있었습니다. 솔루션은 updateTextArea 함수를 CSS 클래스를 사용하는 일반적인 것으로 매핑하고 live 함수를 사용하여 이러한 변경 사항에 대해 DOM을 모니터링합니다.


선택한 모든 확인란 값을 쉼표로 구분 된 문자열로 반환 할 수도 있습니다. 또한 매개 변수로 SQL에 보낼 때 더 쉽게 만들 수 있습니다.

다음은 쉼표로 구분 된 문자열에 이름이 "chkboxName"인 모든 선택된 확인란 값을 반환하는 샘플입니다.

그리고 여기에 자바 스크립트가 있습니다

function showSelectedValues()
{
  alert($("input[name=chkboxName]:checked").map(
     function () {return this.value;}).get().join(","));
}

다음은 HTML 샘플입니다

<html>
  <head>
 </head>
 <body>
  <div>
   <input name="chkboxName" type="checkbox" value="one_name" checked>
   <input name="chkboxName" type="checkbox" value="one_name1">
   <input name="chkboxName" type="checkbox" value="one_name2">
  </div>  
 </body>
 </html>

귀하의 질문은 매우 모호하지만 이것이 필요한 것 같습니다.

$(function() { 
    $('input[type="checkbox"]').bind('click',function() {
        if($(this).is(':checked')) {
            $('#some_textarea').html($(this).val());
         }
   });
});

편집 : 아, 알았어 .. 거기 당신은 간다 ... 당신은 전에 HTML이 없었습니다. 어쨌든, 네가 클릭 할 때 텍스트 영역에 값을 넣으려고한다고 생각했습니다. 체크 된 체크 박스의 값을 페이지로드시 텍스트 영역에 넣으려면 (쉼표로 멋진 쉼표로 표시) 다음과 같이 간단합니다.

$(function() { 
    $('#c_b input[type="checkbox"]:checked').each(function() { 
        $('#t').append(', '+$(this).val());
    });
});

편집 2 사람들이 한 것처럼, 내가 쓴 긴 선택기를 바로 가기로 할 수도 있습니다.

$('#c_b :checkbox:checked').each(function() {
    $('#t').append(', '+$(this).val());
});

... 나는 그 지름길을 완전히 잊었다. ;)


이것은 나를 위해 완벽하게 작동합니다.

alert($("input[name=chkboxName]:checked").map(function() {
    return this.value;
}).get().join(","));

감사합니다 Mohamed ElSheikh


귀하의 솔루션이 도움이 된 altCognito에게 감사드립니다. 확인란 이름을 사용하여이 작업을 수행 할 수도 있습니다.

function updateTextArea() {         
   var allVals = [];
   $('[name=chkbox]:checked').each(function() {
      allVals.push($(this).val());
   });
   $('#t').val(allVals)
} 
$(function() { 
    $('#c_b input').click(updateTextArea);
    updateTextArea();
});

다음은 약간 다른 솔루션을 찾고 있기 때문에 유용 할 수 있습니다. 내 스크립트는 입력 요소를 자동으로 반복해야하고 값을 반환해야했습니다 (jQuery.post () 함수의 경우). 확인 된 상태에 관계없이 확인란이 값을 반환하는 것이 문제였습니다. 이것은 내 해결책이었습니다.

jQuery.fn.input_val = function(){

    if(jQuery(this).is("input[type=checkbox]")) {
        if(jQuery(this).is(":checked")) {
            return jQuery(this).val();
        } else {
            return false;
        }
    } else {
        return jQuery(this).val();
    }
};

용법:

jQuery(".element").input_val();

주어진 입력 필드가 체크 박스이면, input_val 함수는 체크 된 경우에만 값을 반환합니다. 다른 모든 요소의 경우 확인 된 상태에 관계없이 값이 반환됩니다.


다음은 값을 변수에 저장해야하는 경우에 대한 대안입니다.

var _t = $('#c_b :checkbox:checked').map(function() {
    return $(this).val();
});
$('#t').append(_t.join(','));

(map ()은 텍스트 영역의 텍스트보다 편리한 배열을 반환합니다.)


   $(document).ready(function() {
        $(':checkbox').click(function(){
           var cObj = $(this);
           var cVal = cObj.val();
           var tObj = $('#t');
           var tVal = tObj.val();
           if( cObj.attr("checked")) {
              tVal = tVal + "," + cVal; 
              $('#t').attr("value", tVal);
           } else {
              //TODO remove unchecked value.
           }
        });
    });

 function updateTextArea() {         
     var allVals = $('#c_b :checked').map(function() {
       return $(this).val();
     }).get();
     $('#t').val(allVals)
  }
 $(function() {
   $('#c_b input').click(updateTextArea);
   updateTextArea();
 });

$("#t").text($("#cb").find(":checked").val())

어쨌든 다음과 같은 것이 필요할 것입니다.

 var val = $('#c_b :checkbox').is(':checked').val();
 $('#t').val( val );

페이지에서 첫 번째로 선택된 확인란의 값을 가져 와서 텍스트 영역에을 삽입합니다 id='textarea'.

예제 코드에서는 확인란을 양식에 넣어야합니다.


다른 게시물의 답변을 사용하여 동일한 작업을 수행하는 데 사용하는 훨씬 쉽고 짧은 방법은 다음과 같습니다.

var checkedCities = $('input[name=city]:checked').map(function() {
    return this.value;
}).get();

원래 도시는 MySQL 데이터베이스에서 검색되어 PHP while loop로 반복됩니다.

while ($data = mysql_fetch_assoc($all_cities)) {
<input class="city" name="city" id="<?php echo $data['city_name']; ?>" type="checkbox" value="<?php echo $data['city_id']; ?>" /><?php echo $data['city_name']; ?><br />
<?php } ?>

이제 위의 jQuery 코드를 사용하여 모든 city_id 값을 가져 와서 $ .get (...)을 사용하여 데이터베이스에 다시 제출하십시오.

이것은 코드가 완전히 역동적이므로 내 인생을 너무 쉽게 만들었습니다. 더 많은 도시를 추가하려면 데이터베이스에 도시를 추가하고 PHP 또는 jQuery에 대해 걱정할 필요가 없습니다.


나는 비슷한 문제가 있었고 이것이 위의 예를 사용하여 해결 한 방법입니다.

 $(".ms-drop").click(function () {
        $(function showSelectedValues() {
            alert($(".ms-drop input[type=checkbox]:checked").map(
               function () { return this.value; }).get().join(","));
        });
    });

이걸로 해봐..

var listCheck = [];
console.log($("input[name='YourCheckBokName[]']"));
$("input[name='YourCheckBokName[]']:checked").each(function() {
     console.log($(this).val());
     listCheck .push($(this).val());
});
console.log(listCheck);

확인란의 값을 확인하는 즉시 즉시 삽입하려면 다음과 같이하십시오.

$(":checkbox").click(function(){
  $("#id").text(this.value)
})

참고 URL : https://stackoverflow.com/questions/786142/how-to-retrieve-checkboxes-values-in-jquery

반응형