以下是我的代码。
<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',
),
),
)); ?>
答案 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();
}
});