2011-11-23 25 views
0

Я понятия не имею, почему это onChange Событие не работает. Может быть, я так привык к коду, что не вижу своей ошибки. Я ценю вашу помощь:CakePHP onChange событие

<td class="cellInput"> 
    <?php 
    $options = array('200'=>'200', '500'=>'500', '1000'=>'1000', '2000'=>'2000', '5000'=>'5000', 'Outro'=>'Outro'); 
    $attributes = array('legend' => false); 

    echo $form->select('capacidade', $options, array(
     'class' => '', 
     'label' => '', 
     'default' => '200', 
     'onchange' => "javascript:checkForOther(this);", 
    )); 
    ?> 
</td> 
+2

Вы должны попробовать и принимать ответы на предыдущие вопросы. – abhinav

ответ

0

Попробуйте

  1. Ввод атрибутов в качестве четвертого аргумента вместо третьего:

    echo $form->select('capacidade', $options, null, 
        array(
         'class'=>'' 
         ,'label' => '' 
         ,'default' => '200' 
         ,'onchange' => "javascript:checkForOther(this);" 
        ) 
    ); 
    
  2. делает источник сгенерированной страницы имеют атрибут onChange?

  3. См documentation
+0

Фантастический !!! Большое вам спасибо всем! Это действительно работало =) –

0

Согласно CakePHP documentation on select method, третий аргумент используется для выбора, какой вариант выбран по умолчанию.

Вы должны использовать четвертый аргумент для передачи HTML атрибуты к select элемента:

<td class="cellInput"> 
    <?php 
    $options = array('200'=>'200', '500'=>'500', '1000'=>'1000', '2000'=>'2000', '5000'=>'5000', 'Outro'=>'Outro'); 
    $attributes = array('legend'=>false); 
    echo $form->select('capacidade', $options, '200', array('class'=> '', 'label' => '', 'onchange' => "checkForOther(this);")); 
    ?> 
</td> 
2

Как и другие предложили, поместить атрибуты в правильном положении параметра. Другая вещь, которую я хотел бы сделать, это удалить яваскрипт и просто имя функции там, как:

От: 'onchange' => "javascript:checkForOther(this);"

Для: 'onchange' => "checkForOther(this)"

Смежные вопросы