jquery选择更改事件只有一次火

时间:2018-03-23 11:11:48

标签: php jquery html yii

以下是我的代码。

<script type="text/javascript">
    //jQuery(document).ready(function($) {
        //jQuery('select[name="Vendor"]').on('change', function(){
        jQuery('select[name="Vendor"]').change(function(){

            var selectedValue = $(this).val();
            alert("Selected Text: " + selectedValue);
              if(this.value ==2){
                jQuery('.grid_data').show();
              }else{
                jQuery('.grid_data_rel').show();
              }
        });
    //});
</script>

当我更改选择值时,事件仅发生一次而非第二次显示警告。

Html来自yii网格视图,如

 'filter'=>array('1'=>"Recomonded",'2'=>"Related"),  this is html in code and i used in yii frame work.

所以在这里我看不到我的静态HTML代码它来自yii的gridview。

<?php 
    $sql = "SELECT product_id,product_name FROM `user_master` as u 
                                        INNER JOIN product_detail as p 
                                        ON p.vendor_id = u.u_id WHERE p.vendor_id =2";
    $result = Yii::app()->db->createCommand($sql)->queryAll();


$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'user-master-grid',
    'dataProvider'=>$model->search(),
    'filter'=>$model,
    'columns'=>array(
        'u_id',
        // 'product_id',
        // 'ut_id',
        // 'country_id',
        'fullname',
        // 'ur.role_name',
        array(
            'header' => 'Role Name',
            'name' => 'ur_id',
            'value' => '$data->ur->role_name',
        ),

        array(
            'header' => 'Product Name',
            'name' => 'product_id',
            'value' => '$data->product_detail->product_name',
        ),
          array(
            'header' => 'Qty',
            'name' => 'product_id',
            'value' => '$data->product_detail->quantity',
        ),
             array(
            'header' => 'product_id',
            'name' => 'product_id',
            'value' => '$data->product_detail->product_id',
        ),
        // 'representative_name',
        'email',
        // 'password',
        'mobile',




            array(
                    'header' => 'Image',
                    'name' => 'u_id',
                    'id'=>'u_id',

                    'type' => 'raw',
                    'filter'=>array('1'=>"Recomonded",'2'=>"Related"),      
          ),




        array(
            'class'=>'CButtonColumn',
        ),
    ),
)); ?>

1 个答案:

答案 0 :(得分:0)

gridview可能正在使用ajax加载新的html。 如果是这种情况,则您的事件监听器不会被附加到新的替换select元素。

为什么不使用注释掉的.on()方法?

回到委派活动:

<script type="text/javascript">
jQuery(document).on('change', 'select[name="Vendor"]', function(){

    if(this.value ==2){
        jQuery('.grid_data').show();
    }else{
        jQuery('.grid_data_rel').show();
    }
});