2012-02-06 101 views
24

我有一個選擇框的選項,我在Zend視圖上使用jQuery「選擇」。這個插件工作正常。選擇默認選擇一個選項與jQuery

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

我的問題是我需要的頁面加載取決於什麼TYPE_ID的值時選擇的選項之一。我試過這個:

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

這改變了它的值,但在選擇的JQuery中未選擇該選項。

任何想法?


編輯:該選項通過做我上面提到的成功改變,但它不更新/更改jQuery「選擇」插件中選定的元素。我的問題是關於更新jQuery的選定值選擇不是HTML SELECT(我已經成功完成)。 Here is a link to jQuery Chosen plugin

+0

這不是兩個單獨的問題?提供的jQuery與該值無關,反之亦然。 – 2012-02-06 13:45:57

回答

55

更新列表與JS

在運行:

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

對於所選擇的版本1及以上(更新)

你應該叫:

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

Chosen documentation摘自:

更新獲選動態

如果您需要在您的選擇字段更新選項,並要選擇拿起變化,你需要觸發「選擇:更新「現場的事件。 Chosen會根據更新的內容重新構建自己。

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

這個API變化的公告見the change log

對於所選擇的版本低於1(以上)

你應該叫:

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

Chosen documentation摘自:

更新選上的動態

如果您需要更新的選項在您選擇的字段中,並且想要選擇 來選擇更改,您需要觸發「liszt:updated」 賽場上的事件。 Chosen會根據更新後的 內容重新構建自己。

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

調用選的

而不是從JS在此之前將值設置你爲什麼不在調用Chosen之前,只需在HTML中設置選定的選項即可插件與JavaScript?你正在設置一塊PHP的值,所以我不明白爲什麼不能這樣做。

+0

非常感謝:)這工作。 – ShayanK 2012-02-06 14:17:33

+0

這太棒了!我需要對DOM執行'change()'操作,但是'