如何在Yii下拉列表onSelect中调用Javascript

时间:2013-11-27 08:36:48

标签: javascript php yii yii-extensions

我使用Chtml :: dropdownlists创建了两个下拉列表,如下所示。

echo $form - > dropDownList($model, 'min_cost', Yii::app() - > params['cost_resales'],
    array(
        'empty' = > 'Choose one',
    )
);
echo $form - > dropDownList($model, 'max_cost', Yii::app() - > params['cost_resales'],
    array(
        'empty' = > 'Choose one',
    )
);

现在,上面的代码必须按照以下脚本工作

// Keep a copy of the default options
var $options = $('#SearchForm_min_cost').children().clone();

$('#SearchForm_min_cost').change(function(){
// Within your change handler:

var index = $(this).find(':selected').index();
$('#SearchForm_max_cost').html($options).children(':lt('+index+')').remove();

});    

我用上面的代码创建了一个小提琴http://jsfiddle.net/E3mY2/1/。小提琴它工作正常。但是,我不知道如何调用脚本以使下拉列表工作

2 个答案:

答案 0 :(得分:0)

在htmlOptions属性中给它们正确的id:

echo $form->dropDownList($model, 'min_cost', Yii::app()->params['cost_resales'], 
       array('empty'=>'Choose one', ) ,
       array('id' => 'SearchForm_min_cost') // set id in htmlOptions
);
echo $form->dropDownList($model, 'max_cost', Yii::app()->params['cost_resales'], 
      array('empty'=>'Choose one', ),
      array('id' => 'SearchForm_max_cost') // set id in htmlOptions
 );

register your javascript与yii

答案 1 :(得分:0)

首先检查在浏览器上查看视图后生成的ID是否正确或与脚本相同。然后,为了测试,将脚本放在脚本标记内的视图底部。

=========视图在此处结束=========== 确保在页面中添加了jquery文件。如果您的下拉菜单中的ID与脚本相同,那么在成功测试后,它将完全正常工作,并使用Yii重新编写您的脚本。

// Keep a copy of the default options
var $options = $('#SearchForm_min_cost').children().clone();

    $('#SearchForm_min_cost').change(function(){
    // Within your change handler:

    var index = $(this).find(':selected').index();
    $('#SearchForm_max_cost').html($options).children(':lt('+index+')').remove();

    });