• 解決済 sensensen

    (@sensensen)


    いつもお世話になっております。

    以下にチェックボックスのリスト例と
    div内でチェックされたものを取得して、その値を配列にして表示するようにしたサンプルがありますが、alertで出力すると(object object)となります。
    consoleで出力すると「1156,1077」と出力されます。
    (現在のコードはチェックされたvalue値を取得)

    value値ではなく、「舟石川小学校」などの値を取得したいのですがどのように取得すればよいでしょうか。

    選択されたvalue値ではなく、「舟石川小学校」などの値を取得し、をそのまま、タグのフォーム「new-tag-post_tag」に反映させたいと思います。
    ご教授お願いします

    例)

    <input value="1156" type="checkbox" name="tax_input[schooldistrict][]" id="in-schooldistrict-1156" />舟石川小学校

    例)

    <div id="schooldistrict-all" class="tabs-panel">
    
    <ul id="schooldistrictchecklist" class="list:schooldistrict categorychecklist form-no-clear">
    
    <li id='schooldistrict-1156'>
    <label class="selectit">
    <input value="1156" type="checkbox" name="tax_input[schooldistrict][]" id="in-schooldistrict-1156" checked='checked' />舟石川小学校
    </label>
    </li>
    
    <li id='schooldistrict-1077'>
    <label class="selectit">
    <input value="1077" type="checkbox" name="tax_input[schooldistrict][]" id="in-schooldistrict-1077" />中根小学校
    </label>
    </li>
    
    <li id='schooldistrict-1084'>
    <label class="selectit">
    <input value="1084" type="checkbox" name="tax_input[schooldistrict][]" id="in-schooldistrict-1084" />佐野小学校
    </label>
    </li>
    
    </ul>
    </div>

    現在のコード)

    function GetVals($checked){
    		var AllVals;
    		AllVals = $checked.map(function(index, el) { return jQuery(this).val(); });
    		console.log(AllVals);(nameのvalue値が出力される)
    		alert(AllVals);(object objectと表示される)
    }
    
    jQuery(function() {
        jQuery('input[name="tax_input[schooldistrict][]"]').change(function(){
    		$checked = jQuery('input[name="tax_input[schooldistrict][]"]:checked');
    		GetVals($checked);
     });

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • function GetVals($checked){
    		var AllVals = new Array();
    //		AllVals = $checked.map(function(index, el) { return jQuery(this).val(); });
    		$checked.each(function(){
    			AllVals.push(jQuery(this).closest('label').html().replace(/<(.+)>/,""));
    		});
    		alert(AllVals.join(','));
    }

    こんなかんじでいかがでしょう。もっといい方法があるとおもいますが

    トピック投稿者 sensensen

    (@sensensen)

    jdbbさん、
    ご連絡ありがとうございました!!

    closestは知らなかったです、、
    replaceの処理として、「/<(.+)>/」と記載されておりましたが、
    これは、正規表現で、<>で囲まれている文字列を無くすという処理ですよね!?
    joinも凄い便利ですね!!

    とても勉強になりました。
    どうもありがとうございました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「管理画面でカテゴリを選択したら、その選択した値をラベルに反映させた」には新たに返信することはできません。