使用AJAX更改Yii ListBox的默认onChange事件(我需要onClick)

时间:2014-07-30 21:55:41

标签: javascript jquery ajax forms yii

我有<select>元素的代码:

    $htmlOptions = array(
        'size' => '20',
        'ajax' => array(
            'type' => 'POST', 
            'url' => Yii::app()->createUrl('/module/controller/updateajax'),
            'update' => '#info',
            'data' => array('id'=>'js:this.value')
        )
    );

    echo CHtml::listBox('list', array(), $dataProvider, $htmlOptions);
    <div id="info"></div>

这会在body

的底部创建下一个代码
<script type="text/javascript">
/*<![CDATA[*/
jQuery(function($) {
  jQuery('body').on(
    'change',
    '#list',
    function(){
        jQuery.ajax({
            'type':'POST','url':'/yii/app/module/controller/updateajax.html',
            'data':{'id':this.value},
            'cache':false,
            'success':function(html){jQuery("#info").html(html)}
        });
        return false;
    }
  );
});
/*]]>*/
</script>

一切正常。但出于我的用户体验,我需要onClick事件而不是jQuery('body').on('change',...。是否存在类似?:

    $htmlOptions = array(
        ...
        'ajax' => array(
            ...,
            'event'=>'onclick'
        )
    );

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

将额外的点击处理程序添加到您的页面:

<script type="text/javascript">
jQuery(function($) {
    jQuery('body').on(
        'click',
        '#list',
        function () {
            $(this).trigger('change');
            return false;
        });
});
</script>