选择默认情况下使用jQuery选择一个选项

Sha*_*anK 26 html javascript php jquery jquery-selectors

我有一个带选项的选择框,我在Zend View上使用jQuery"Chosen".这个插件工作正常.

Javascript:
$('#select_type').chosen();
Run Code Online (Sandbox Code Playgroud)

我的问题是我需要在页面加载时选择其中一个选项,具体取决于type_id的值.我试过这个:

document.getElementById('select_type').value = '<?=$this->type_id?>';
Run Code Online (Sandbox Code Playgroud)

这会更改其值,但未在所选的JQuery中选择该选项.

有任何想法吗?


编辑:该选项通过执行上面提到的内容成功更改,但它不会更新/更改jQuery"selected"插件中的选定元素.我的问题是关于更新jQuery Chosen的选定值而不是HTML SELECT(我已成功完成).这是jQuery Chosen插件的链接

Tre*_*non 61

用JS更新列表

运行后:

document.getElementById('select_type').value = '<?=$this->type_id?>';
Run Code Online (Sandbox Code Playgroud)

对于选择版本1及更高版本(更新版本)

你应该致电:

$('#select_type').trigger('chosen:updated');
Run Code Online (Sandbox Code Playgroud)

取自选择的文档:

动态更新选择

如果您需要更新选择字段中的选项并希望选择选择更改,则需要在该字段上触发"selected:updated"事件.Chosen将根据更新的内容重新构建自己.

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

请参阅更改日志以了解此API更改的公告.

对于低于1的选择版本(较旧)

你应该致电:

$('#select_type').trigger('liszt:updated');
Run Code Online (Sandbox Code Playgroud)

取自选择的文档:

动态更新选择

如果您需要更新选择字段中的选项并希望选择选择更改,则需要在该字段上触发"liszt:updated"事件.Chosen将根据更新的内容重新构建自己.

  • jQuery版本:$("#form_field").trigger("liszt:updated");
  • 原型版本:Event.fire($("form_field"), "liszt:updated");

在调用Chosen之前设置值

而不是从JS这样做,为什么不在用JavaScript调用Chosen插件之前在HTML中设置所选选项?您正在从一块PHP设置值,所以我不明白为什么不能这样做.


Ben*_*ier 6

您可以使用所选属性设置正确的元素,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)

选择将注意初始化并显示两个预先选择的选项.