2014-04-22 9 views
5

W Yii 1 mogłem ustawić zdarzenie onchange dla DropdownList tą metodą:Yii2 DropDownList onchange

CHtml::dropDownList('id', $select, $list, array('onchange'=>'this.form.submit()')) 

i to było całkiem dobre. Ale w Yii 2 to nie działa, jak mogę rozwiązać ten problem?

+0

[to] (http://stackoverflow.com/questions/36500793/how-to-create-a-dropdown-dependent-on-another-dropdown -in-yii2/36643901 # 36643901) może pomóc komuś. –

Odpowiedz

10

kod ten utrzymuje się na zmianę odpowiednio:

<?php use yii\helpers\Html; ?> 
    <?= Html::beginForm() ?> 
    <?= Html::dropDownList(
    'test', //name 
    'b', //select 
    ['a'=>'A', 'b'=>'B'], //items 
    ['onchange'=>'this.form.submit()'] //options 
)?> 
    <?= Html::endForm() ?> 
+0

hm, masz rację, może w poprzedniej wersji, która nie działała – Alex

+0

Działa to, chyba że musisz wstawić jakiś cytowany tekst. Cytaty zamieniają się w specjalne znaki. Jak zapewnić, że wyceny nie zostaną skonwertowane? Ten wstawiony JS nie zadziała: onchange = "if ($ (" #name ") .val() == ' john ') {page.reload();}. – lubosdz

+0

możesz użyć różnych cudzysłowów lub symboli escape: onchange => "if ($ ('# name'). val() == 'john') {page.reload();} lub możesz użyć JsExpression jak tutaj: http://stackoverflow.com/questions/23260636/ update-hidden-field-using-autocomplete-in-yii2/23261772 # 23261772 – user1852788