0

米国の主要都市のチェックボックスのグリッドがあります。状態を選択するためのドロップ メニューを作成しました。ユーザーが送信ボタンをクリックすると、その特定の状態のすべてのチェックボックスを選択したいと思います。私はすでに各チェックに動的 ID を使用しています。タイトル属性でそれらを識別できると考えていました。

jqueryではなく通常のjavascriptですべての「ニューヨーク州」を選択する方法はありますか?

どんな助けでも大歓迎です。

ネオジャキー

編集

私はこれらの線に沿って考えていました

function SelectState(StateAbbr)
{
     var f = document.frmChangeMemberPaid;
     checkboxes = document.getElementsByName('LocalPageID');
     for(var i in checkboxes)
     {
          if(checkboxes[i].attributes[1].name == StateAbbr)
          {
               checkboxes[i].checked = source.checked;
          }
     }
}
4

2 に答える 2

1

関数getElementsByTagNameを使用してすべての入力を取得し、すべてのチェックボックスを除外してから、基準に一致するものだけをチェックする必要があると思います:

var inputs = document.getElementsByTagName("input");

for (var i=0, count = inputs.length; i < count; i++) {
    var node = inputs.item(i);
    if (node.type === "checkbox") {
        if (node.title === "New York State") {
            node.checked = true;
        } else {
            // uncheck other checkboxes in case they are already checked
            node.checked = false;
    }
}
于 2012-08-15T13:00:46.460 に答える
0

クラスを使用して入力をマークします。

<table id="cities" border="1">
    <tr>
        <td>
            Miami, FL
            <input type="checkbox" value="Miami" class="FL" />
        </td>
        <td>
            New York City, NY
            <input type="checkbox" value="New York City" class="NY" />
        </td>
    </tr>
    <tr>
        <td>
            Tampa, FL
            <input type="checkbox" value="Tampa" class="FL" />
        </td>
        <td>
            Buffalo, NY
            <input type="checkbox" value="Buffalo" class="NY" />
        </td>
    </tr>
</table>

<select id="states">
     <option value="FL">FL</option>
    <option value="NY">NY</option>
</select>

<script type="text/javascript">
    var cities = document.getElementById('cities'),
    states = document.getElementById('states');

    function checkCitiesOf(state) {
        inputs = cities.getElementsByTagName('input');
        for(var i = 0, l = inputs.length; i < l; i++) {
            inputs[i].checked = inputs[i].className == state;       
        }
    }

    states.onchange = function() {
        checkCitiesOf(this.value);
    };
</script>

</p>

フィドル</p>

于 2012-08-15T13:06:07.213 に答える