๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ ํ”„๋ก ํŠธ์—”๋“œ/JavaScript

[Script] ์ฒดํฌ๋ฐ•์Šค

by OR15A 2023. 12. 7.
๋‚ด๊ฐ€ (์ฒดํฌ)์„ ํƒํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅ๋˜๋„๋ก.
์ตœ๊ทผ์— ์„ ํƒํ•œ ๊ฒƒ์ด ๊ฐ€์žฅ ๋‚˜์ค‘์—.
์ฒดํฌ ํ•ด์ œํ•˜๋ฉด ๊ทธ ๋‚ด์šฉ๋งŒ ์‚ญ์ œ
์ฒดํฌํ•˜๋ฉด ์•„๋ž˜์— ์ฒดํฌํ•œ ๋‚ด์šฉ ํ…์ŠคํŠธ ์จ์ฃผ๊ธฐ
์ˆ˜๋™์œผ๋กœ ๊ฐœ๋ณ„์ฒดํฌํ–ˆ์„ ๋•Œ ์ „์ œ๋„ ์ž๋™์œผ๋กœ ์ฒดํฌ๋˜๊ณ , ํ•˜๋‚˜๋งŒ ์ฒดํฌ ํ’€์–ด๋„ ์ฒดํฌํ•ด์ œ๋˜๊ฒŒ
์ฒดํฌ ๊ฐœ์ˆ˜๊ฐ€ 4์ดํ•˜, 9์ผ ๋–„ ๋ฒ„ํŠผ ๋ˆ„๋ฅด๋ฉด ์„ฑ๊ณต alert

 

๊ธฐ๋Šฅ ๊ตฌํ˜„ํ•˜๋ฉฐ ์ƒˆ๋กœ ๋ฐฐ์šด ๋‚ด์šฉ
  • $(์„ ํƒ์ž).arrt("์†์„ฑ ์ด๋ฆ„","์†์„ฑ ๊ฐ’")์™€ $(์„ ํƒ์ž). removeAttr("์†์„ฑ ์ด๋ฆ„")์€  jQuery 1.6 ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” ๋™์ž‘ํ–ˆ์ง€๋งŒ, ์ตœ์‹  ๋ฒ„์ „์—์„œ๋Š” .prop() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผํ•จ
  • ์†์„ฑ ์ถ”๊ฐ€ ์˜ˆ์‹œ: $("#allChk").prop("checked", true);
  • ์†์„ฑ ์ œ๊ฑฐ ์˜ˆ์‹œ:  $("#allChk").prop("checked", false);
  • ์ œ์ด์ฟผ๋ฆฌ์—์„œ ํƒœ๊ทธ๋กœ ์„ ํƒํ•ด์„œ ๋ฐ˜๋ณตํ•˜๊ธฐ + ์ฒซ๋ฒˆ์งธ๊ฐ’ ์ œ์™ธ + if ์กฐ๊ฑด์— ๋งŒ์กฑํ•˜๋ฉด click์ด๋ฒคํŠธ ์ผ์–ด๋‚˜๊ฒŒ ํ•˜๊ธฐ
$("input[type='checkbox']").not(":first").each(function () {
         if (!$(this).is(":checked")) {
         $(this).trigger("click");
     }
});

 

ํ™”๋ฉด ์˜ˆ์‹œ

 

JQuery
$(function () {

    // let isAllChecked = false;
    let checkedCount = 0;

    //์ „์ฒด ์ฒดํฌ๋ฐ•์Šค๋ฅผ ์ œ์™ธํ•˜๊ณ  checkedํƒ€์ž…์˜ input์— click ํ•จ์ˆ˜ ๋„ฃ๊ธฐ(textarea๊ด€๋ จ)

    $("input[type='checkbox']").not(":first").on("click", function() {
        ckeckedAndTextare($(this));
    });


    function ckeckedAndTextare (element){

        if(element.is(":checked")) {
             //์ฒดํฌ ๋˜์—ˆ์„ ๋•Œ textArea์— ์ถ”๊ฐ€
            $("#regionText").val($("#regionText").val()+element.val()+" ");
            //์ฒดํฌ๊ฐœ์ˆ˜ ์ถ”๊ฐ€
            checkedCount = checkedCount+1;
            //์ด๋ฒˆ ์ฒดํฌ๋กœ ์ „์ฒด ์ฒดํฌ๊ฐ€ ๋˜๋Š”๊ฑฐ๋ผ๋ฉด
            if(checkedCount==9){
                $("#allChk").prop("checked", true);
            }
        } else {
            //์ฒดํฌ๋˜์ง€ ์•Š์•˜์„ ๋•Œ ๊ธ€์ž ์‚ญ์ œ
            let textAreaVale = $("#regionText").val();
            //์ฒดํฌ ๊ฐ์†Œ
            checkedCount = checkedCount-1;
            $("#regionText").val(textAreaVale.replace(element.val()+" ",""));
            // ์ด๋ฒˆ ์ฒดํฌ ํ•ด์ œ๋กœ ์ „์ฒด๊ฐ€ ํ’€๋ฆฌ๊ฒŒ ๋˜๋Š”๊ฑฐ๋ผ๋ฉด ์ „์ฒด ๋ฒ„ํŠผ checked ์ง€์›Œ์ฃผ๊ธฐ
            if(checkedCount!=9){
                $("#allChk").prop("checked", false);
            }
        }

    }



    // ์ „์ฒด ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ์ฒดํฌ๋˜์ง€ ์•Š์€ ํƒœ๊ทธ๋ฅผ ํ™•์ธํ•˜๊ณ  click ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
    $("#allChk").on("click", function () {
        if ($("#allChk").is(":checked")) {

            // ์ „์ฒด checked์ด๋ฉด checked false์ธ ๊ฒƒ๋“ค์„ true๋กœ
            $("input[type='checkbox']").not(":first").each(function () {
                if (!$(this).is(":checked")) {
                    $(this).trigger("click");
                }
            });


        } else {

            // ์ „์ฒด checked ์•„๋‹ˆ๋ฉด checked true์ธ ๊ฒƒ๋“ค์„ false๋กœ
            $("input[type='checkbox']").not(":first").each(function () {
                if ($(this).is(":checked")) {
                    $(this).trigger("click");
                }
            });

        }
    });


    //ํ™•์ธ ๋ฒ„ํŠผ
    $("#btn").click(function (){
        if(checkedCount<4||checkedCount==9){
            alert("[์„ฑ๊ณต] ์ฒดํฌ ์นด์šดํŠธ : "+checkedCount);

        } else {
            alert("[์‹คํŒจ] ์ฒดํฌ ์นด์šดํŠธ : "+checkedCount);

        }
    });


});