web-dev-qa-db-ja.com

jQueryでデフォルトでオプションを選択する

オプションのある選択ボックスが1つあり、ZendビューでjQueryの「選択」を使用しています。このプラグインは正常に動作しています。

Javascript:
$('#select_type').chosen();

私の問題は、type_idの値に応じてページがロードされるときにオプションの1つを選択する必要があることです。私はこれを試しました:

document.getElementById('select_type').value = '<?=$this->type_id?>';

これにより値が変更されますが、選択したJQueryでオプションが選択されていません。

何か案は?


編集:オプションは上記のことを行うことで正常に変更されますが、jQueryの「選択された」プラグインで選択された要素を更新/変更しません。私の質問は、HTML SELECTではなく、選択したjQueryの選択値を更新することです(これは正常に完了しました)。 これはjQuery Chosenプラグインへのリンクです

26
ShayanK

JSでリストを更新する

実行後:

_document.getElementById('select_type').value = '<?=$this->type_id?>';
_

選択されたバージョン1以降(新しい)

呼び出す必要があります:

_$('#select_type').trigger('chosen:updated');
_

Chosen documentation から取得:

選択した動的な更新

選択フィールドのオプションを更新する必要があり、選択したものに変更を反映させる場合は、フィールドで「chosen:updated」イベントをトリガーする必要があります。選択されたコンテンツは、更新されたコンテンツに基づいて再構築されます。

$("#form_field").trigger("chosen:updated");

このAPIの変更の発表については、 変更ログ をご覧ください。

1(古い)未満の選択されたバージョンの場合

呼び出す必要があります:

_$('#select_type').trigger('liszt:updated');
_

Chosen documentation から取得:

選択した動的な更新

選択フィールドのオプションを更新する必要があり、選択したものに変更を反映させるには、フィールドで「liszt:updated」イベントをトリガーする必要があります。選択されたコンテンツは、更新されたコンテンツに基づいて再構築されます。

  • jQueryバージョン$("#form_field").trigger("liszt:updated");
  • プロトタイプバージョンEvent.fire($("form_field"), "liszt:updated");

Chosenを呼び出す前に値を設定します

JavaScriptでChosenプラグインを呼び出す前に、JSでこれを行う代わりに、HTMLで選択したオプションを設定しないのはなぜですか? PHP=の一部から値を設定しているので、なぜこれができなかったのかわかりません。

60
Treffynnon

次のように選択した属性で正しい要素を設定するだけです。

<select name="teams[]" data-placeholder="Chose an option:" 
        class="chzn-select" multiple tabindex="6">
    <option value=""></option>
    <option selected="selected">Dallas Cowboys</option>
    <option selected="selected">New York Giants</option>
    <option>Philadelphia Eagles</option>
    <option>Washington Redskins</option>
</select>

選択すると、自身が初期化され、事前に選択された2つの選択肢が表示されます。

6

これを試して:

$("#select_type").val(<?=$this->type_id?>).trigger('change');

$('#select_type').trigger('liszt:updated');
3
vam

これを試して:

$('#select_type').val('<?=$this->type_id;?>'); // Select the value before .chosen();
$('#select_type').chosen();
2
phatskat
$('#select_type').val('<?=$this->type_id?>');

それを試してみてください

0
yapingchen