2

何かをするときに、選択メニューから特定のオプションをデフォルト(開始)値として変更できるようにする必要があります。

たとえば、宣言すると、英語がデフォルト値になります。

クリックではなくコードでそれを変更する方法。

<form id="form1" name="form1" method="post" action="">
<select name="websites1" id="websites1" style="width:120px" tabindex="1">
    <option value="english" selected="selected"  title="images/us.gif">English</option>
    <option value="espanol" title="images/es.gif">Espanol</option>
    <option value="italian" title="images/it.gif">Italiano</option>
</select>
</form>

body タグで宣言しました:

<script type="text/javascript">
$(document).ready(function() {
$("body select").msDropDown();
});
</script>

私はこのSCRIPTを使用しています

私は以下の例をすべて試しましたが、これは私にとって良いものではありません。

デフォルトの選択値を変更するには、他に何ができますか。

4

5 に答える 5

11

ドキュメントに記載されているように、これは私のために働いています:

$('#websites1').msDropDown().data('dd').set('selectedIndex',2);

これにより、イタリア語が選択されます;)

/編集:

@Patrick M にはより高度なアプローチがあり、私が投稿する前に彼のアプローチを投稿したことに注意してください ;)

私のように奇妙な css の問題が発生している場合は、次の文書化されていないものを試してください。

$('#websites1_msa_2').click(); // this will also select the italian

ご覧のとおり、id は $('# website1 _msa_2') の選択ボックスの id とオプション項目の $('#websites1_msa_ 2 ' ) インデックスによって生成されます。

少しハックですが動作します;)

したがって、次のように JavaScript 関数を定義できます。

var jQueryImageDD_selectByName = function(name) {
  var children = $('#websites2_child').children();
  for(var i=0;i<children.length;i++) {
    var label = children[i].getElementsByTagName('span')[0].innerHTML;
    if(label === name) {
      children[i].click()
    }
  }
};

そして、次のように使用します。

jQueryImageDD_selectByName('Italiano'); // will select Italiano :)
于 2012-08-03T09:35:27.447 に答える
2

彼は言う

オブジェクトを介してほとんどすべてのプロパティを設定できます

したがって、彼がそのページで提供するドキュメントの例から推測するだけです...これを適応させると思います:

var oHandler = $('#comboboxid').msDropDown().data("dd");
oHandler.size([true|false]);
//Set or get  the size property

.valueプロパティに動作する可能性があります。言語をイタリア語に設定するには、試してください

var oHandler = $('#comboboxid').msDropDown().data("dd");
oHandler.value('italian');

// Or maybe the way to do it is this:
oHandler.set('value', 'italian');
// Or maybe 'value' shouldn't be in single quotes
//set property

それがうまくいかない場合は、すべてのプロパティをループして、各インデックスの値を取得して比較し、見つかったら、選択したインデックスをそのプロパティ名に設定することができます。

var languageSelect = $('websites1');
var oHandler = $('#websites1').msDropDown().data("dd");
for(var index = 0; index < languageSelect.length; index++) {
    var option = oHandler.item([index]);
    if(option == 'italian') {
        oHandler.set("selectedIndex", index);
        break;
    }
}

それらの1つが機能するはずです。そうでない場合は、作成者からの返信を待つ必要があります。

于 2012-08-02T21:58:59.897 に答える
1

を使用selectedIndexして、選択したオプションのインデックスを変更できます (0 が最初です)。

document.getElementById("websites1").selectedIndex = 1; //espanol

、または値のテキストを変更するために使用できvalueます (一致する場合は、自動的に変更されます)。

document.getElementById("websites1").value = 'espanol';
于 2012-07-21T08:02:59.003 に答える
0

作業オプション (1. msdropdown を破棄する、2. 値で選択する、3. msdropdown を設定する)

このコードをjsのどこかに置きます:

jQuery.fn.extend({
    setValue: function(value) {
    var dd = $(this).msDropdown().data("dd");
    dd.destroy();
    $(this).val(value);
    $(this).msDropdown();
  }
});

設定値:

$('#selectorOfmsDropDown').setValue('opt10');

あるいは単に:

$("#selector").msDropdown().data("dd").setIndexByValue(newvalue);
于 2013-06-18T10:19:31.470 に答える
0

使用してselectedIndexください。このページを参照してください。選択コントロールには、options基本的にオプション要素の配列であるプロパティがあります。select の最初の要素は options[0]、英語なので、次のようになります。

document.getElementById("websites1").selectedIndex = 0; //=> english

次を使用して、デフォルトで最初のオプションを選択することもできます。

document.getElementById("websites1").options[0]
       .defaultSelected = true; //=> english by default
于 2012-07-21T08:00:32.810 に答える