在gridview中创建动态文本字段

时间:2013-01-22 06:04:42

标签: jquery gridview dynamic yii textfield

<?php echo CHtml::beginForm('','post',array('id'=>'base-si-received-item-form'));?>
<?php 
    $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'base-si-received-item-grid',
        'dataProvider'=>BaseRefSiDetails::model()->search(),
        //'filter'=>$searchModel,
        'columns'=>array(       
            array(
                'class'=>'CCheckBoxColumn',
                'id'=>'base-si-received-item-id',       
                'selectableRows'=>2, // multiple rows can be selected
            ),                  
            array(
                'name'=>'unit',
                'header'=>'unit',
                'type'=>'raw',
                'value'=>'CHtml::textField(BaseSiReceivedItem::model()->quantity_received,"",array("id"=>"received_quantity","name"=>"quantity_received"))',
            ),
            array(
                'name'=>'unit',
                'header'=>'unit',
                'type'=>'raw',
                'value'=>'CHtml::dropDownlist(BaseSiReceivedItem::model()->unit,"unit",array("pc"=>"pc","box"=>"box"))'
            ),
            array(
                'name'=>'unit_cost',
                'header'=>'unit cost',
                'type'=>'raw',
                'value'=>'CHtml::textField(BaseSiReceivedItem::model()->unit_cost,"",array("id"=>"unit_cost"))',
            ),
            array(
                'name'=>'total_cost',
                'header'=>'total cost',
                'type'=>'raw',
                'value'=>'CHtml::textField(BaseSiReceivedItem::model()->total_cost,"",array("id"=>"total_cost","readonly"=>"readonly"))',
            ),
        )
    )
?>

我的 gridview 有问题 我需要做的是,当输入一些收到的数量和单位成本时,价格将自动显示在总成本上。 我有一个 jquery 脚本来做到这一点 我的问题是执行代码的唯一第一行:

这是我的 jquery

 $(document).ready( function(){
     $("#unit_cost").keyup(function() {        
         $("#total_cost").val($("#unit_cost").val() * $("#received_quantity").val());        
     });    
 });

1 个答案:

答案 0 :(得分:1)

正如@Örs所说,将你的id改为课堂。此外,操作的context应该是一行,如下所示:

$(document).ready( function(){
    $(".unit_cost").keyup(function(){
        var tr=$(this).closest('tr');
        $(".total_cost",tr).val($(".unit_cost",tr).val() * $(".received_quantity",tr).val());
    });
});