オプションのある選択ボックスが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プラグインへのリンクです
実行後:
_document.getElementById('select_type').value = '<?=$this->type_id?>';
_
呼び出す必要があります:
_$('#select_type').trigger('chosen:updated');
_
Chosen documentation から取得:
選択した動的な更新選択フィールドのオプションを更新する必要があり、選択したものに変更を反映させる場合は、フィールドで「chosen:updated」イベントをトリガーする必要があります。選択されたコンテンツは、更新されたコンテンツに基づいて再構築されます。
$("#form_field").trigger("chosen:updated");
このAPIの変更の発表については、 変更ログ をご覧ください。
呼び出す必要があります:
_$('#select_type').trigger('liszt:updated');
_
Chosen documentation から取得:
選択した動的な更新選択フィールドのオプションを更新する必要があり、選択したものに変更を反映させるには、フィールドで「liszt:updated」イベントをトリガーする必要があります。選択されたコンテンツは、更新されたコンテンツに基づいて再構築されます。
- jQueryバージョン:
$("#form_field").trigger("liszt:updated");
- プロトタイプバージョン:
Event.fire($("form_field"), "liszt:updated");
JavaScriptでChosenプラグインを呼び出す前に、JSでこれを行う代わりに、HTMLで選択したオプションを設定しないのはなぜですか? PHP=の一部から値を設定しているので、なぜこれができなかったのかわかりません。
次のように選択した属性で正しい要素を設定するだけです。
<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つの選択肢が表示されます。
これを試して:
$("#select_type").val(<?=$this->type_id?>).trigger('change');
$('#select_type').trigger('liszt:updated');
これを試して:
$('#select_type').val('<?=$this->type_id;?>'); // Select the value before .chosen();
$('#select_type').chosen();
$('#select_type').val('<?=$this->type_id?>');
それを試してみてください