jQueryで選択した値を複数の選択入力に設定するにはどうすればよいですか?

combobox javascript jquery option select
jQueryで選択した値を複数の選択入力に設定するにはどうすればよいですか?

私は2つの選択入力を使用し、それらを何年もの配列で埋めています。 その後、selectごとにcurrentYearに選択した値を設定します。 このコードはありますが、最初のSelectでしか動作しません。理由はわかりません。

*編集2 *

すべてがjQuery 1.4.3でうまく機能し、1.4.2が失敗します:_(

編集

私は成功せずにこれを試しています:-( fisrtのみが値OKを選択しています。 バージョンで問題になることはありますか? IE6、asp.net 2.0、jquery 1.4.2。 たとえば、「$(sinceComboSelector).val(currentYear);」うまくいかない:-(

更新されたコード:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Tests.aspx.cs" Inherits="Tests" %>










        $(document).ready(function() {
            loadYears();
        });
        var loadYears = function() {
            var currentYear = new Date().getFullYear(),
                years = [],
                firstYear = currentYear - 7,
                lastYear = currentYear + 3,
                sinceComboSelector = "#cmbAnyDesde",
                toComboSelector = "#cmbAnyHasta",
                i;

            for (i = firstYear; i <= lastYear; i++) {
                years.push(i);
            }

            $(sinceComboSelector).find('option').remove();

            $(toComboSelector).find('option').remove();

            $.each(years, function(key, value) {
                $(sinceComboSelector)
                  .append($("<option></option>")
                  .attr("value", value)
                  .text(value));

                $(toComboSelector)
                  .append($("<option></option>")
                  .attr("value", value)
                  .text(value)); ;
            });

//            $(sinceComboSelector).val(currentYear);
//            $(toComboSelector).val(currentYear);
            $('#cmbAnyDesde option[value=' + currentYear + ']').attr('selected', 'selected');
            $('#cmbAnyHasta option[value=' + currentYear + ']').attr('selected', 'selected');
        };

ありがとう

  3  1


ベストアンサー

上記のコードを使用して、ここでテストし、動作します:

$(document).ready(function (){

  loadYears();

});

var loadYears = function () {
  var currentYear = new Date().getFullYear(),
    years = [],
    firstYear = currentYear - 7,
    lastYear = currentYear + 3,
    sinceComboSelector = "#cmbAnyDesde",
    toComboSelector = "#cmbAnyHasta",
    i;

  for (i = firstYear; i <= lastYear; i++){
    years.push(i);
  }

  $(sinceComboSelector).find('option').remove();

  $(toComboSelector).find('option').remove();

  $.each(years, function(key, value) {
    $(sinceComboSelector)
      .append($("")
      .attr("value", value)
      .text(value));

    $(toComboSelector)
      .append($("")
      .attr("value", value)
      .text(value)); ;
  });

  $(sinceComboSelector).val(currentYear);
  $(toComboSelector).val(currentYear);
};

0


タイトルとURLをコピーしました