0

私はまだJavascriptとJqueryに不慣れで、これに少し問題があります。

選択オプションを持つフィールドセット (#a) からチェックボックス オプションを持つ別のフィールドセット (#b) に値を渡すことができるようにしたいと考えています。たとえば、フィールドセット #a にはデフォルトのオプション 1、2、3、4、5 があります。フィールドセット #b にはさらに多くのオプションを指定できますが、少なくとも #a のデフォルトを含める必要があります。

フィールドセット #a のコード スニペット:

      <fieldset id="a">
        <legend><span>Default Option</span></legend>  
        <div class="fieldset_wrapper">
          <select name="form_default">
            <option value="">Select One</option>
            <%=returnValueMap.get("defaultOptionSelect")%>

          </select>
        </div>
      </fieldset>

フィールドセット #b のコード スニペット:

         <fieldset id="b">
         <legend><span>Option</span></legend>
            <div class="fieldset_wrapper">
              <div><input type="checkbox" name="select-all" id="select-all" class="checkAll"/>   All Options</div>

        <%=returnValueMap.get("optionSelect")%>

        </div>
      </fieldset>

編集、ここに私が試したことがありますが、明らかに何かが欠けていると思います。繰り返しますが、私はこのことを学ぼうとしています

    $('#a option[name="form_default"]:selected').each(function(){   
                            $('#b input[type="checkbox"]').eq($(this).index()).prop('checked',true);
    });
4

1 に答える 1

0
$('#a select').on('change', function(e){
  e.preventDefault()
  $('#b input[type="checkbox"][value="'+$(this).val()+'"]').prop("checked",true);  
})

ちょっとした説明:

  • 変更をスパイし、変更時に関数を呼び出す$('#a select').on('change', function(e){
  • ここでは実際には必要ありません。通常、デフォルトの動作を削除します。たとえば、リンクのページが変更されないようにします。e.preventDefault()
  • 選択ボックスで選択した値を取得します。$(this).val()
  • 次のように、タイプと値を使用して、対応するチェックボックスを選択します。#b input[type="checkbox"][value="value selected in select box"]
  • チェックボックスをオンにします:.prop("checked",true)

あなたを助けるかもしれません

編集:そして、デフォルトで選択されたオプションが必要な場合bは、ページの読み込み時に移動します:

jQuery(function($){
  $('#b input[type="checkbox"][value="'+$('#a select').val()+'"]').prop("checked",true);
});
于 2012-04-20T13:44:51.057 に答える