3

これが私のhtmlコードです

<select id="ddlCountry" placeholder="optional" class="select" title="Select Country">
 <option value="0">Select Country</option>
</select>

これがjqueryコードです.....

$(document).ready(function () {

  $('select.select').each(function () {
    var title = $(this).attr('title');
    if ($('option:selected', this).val() != '') {
      title = $('option:selected', this).text();
      $(this)
        .css({
          'z-index': 10,
          'opacity': 0,
          '-khtml-appearance': 'none'
        })
        .after('<span class="select">' + title + '</span>')
        .change(function () {
          val = $('option:selected', this).text();
          $(this).next().text(val);
        })
    }
  });


  var country = [{
    "CountryID": 1,
    "CountryName": "Afghanistan"
  }, {
    "CountryID": 2,
    "CountryName": "Albania"
  }, {
    "CountryID": 3,
    "CountryName": "Algeria"
  }, {
    "CountryID": 4,
    "CountryName": "American Samoa"
  }, {
    "CountryID": 5,
    "CountryName": "Andorra"
  }, {
    "CountryID": 6,
    "CountryName": "Angola"
  }, {
    "CountryID": 7,
    "CountryName": "Anguilla"
  }, {
    "CountryID": 8,
    "CountryName": "Antarctica"
  }, {
    "CountryID": 9,
    "CountryName": "Antigua and Barbuda"
  }, {
    "CountryID": 10,
    "CountryName": "Argentina"
  }];

  $.each(country, function (index, item) {
    $('#ddlCountry').append($('<option></option>').val(item.CountryID).html(item.CountryName));
  });

  $('#ddlCountry').val(2);
});

ドロップダウン値を 2 に設定しましたが、デフォルト値は常にSelect Country

ここにjsfiddleがあります

4

4 に答える 4

4

選択の選択された値をプログラムで変更するときに onchange イベントを発生させません。手動でトリガーします。

$('#ddlCountry').val(2).change();

デモ

于 2013-09-25T08:26:38.793 に答える
1

これを試して

$("#ddlCountry")[0].selectedIndex = 2;

それ以外の

$('#ddlCountry').val(2);
于 2013-09-25T08:26:08.137 に答える
0

このよう.eachに値を設定している行の下に関数を配置できます。2

 $('#ddlCountry').val(2); //<---below this one

  $('select.select').each(function () {
    var title = $(this).attr('title');
    if ($('option:selected', this).val() != '') {
      title = $('option:selected', this).text();
      $(this)
        .css({
          'z-index': 10,
          'opacity': 0,
          '-khtml-appearance': 'none'
        })
        .after('<span class="select">' + title + '</span>')
        .change(function () {
          val = $('option:selected', this).text();
          $(this).next().text(val);
        })
    }
  });

このフィドルでここをチェックアウト

于 2013-09-25T08:26:41.577 に答える
0

change値を設定しても、イベントはトリガーされません。

あなたは付け加えられます :

$('#ddlCountry').val(2).trigger('change');
于 2013-09-25T08:27:41.890 に答える