Jquery attr不能在Yii上工作

时间:2014-11-24 06:56:45

标签: php jquery yii

我正在尝试使用Jquery更改元素值,但它无效...

这是我的小部件,我有我的元素'tag',我想在编辑时将其更改为textField ...

$this->widget('EditableGrid', array(
    'dataProvider' => $dataProvider->searchbyID($invoice_id),
    'template' => '{items}{buttonCreateRow}{pager} ',
    'id' => 'InvoiceLine-grid',
    'rowTemplate' => $row_template,
    'columns' => array(   
            array(
            'class' => 'EditableGridColumn',
            'header' => '',
            'name' => 'InvoiceLine_{gridNum}_{rowNum}_edit',
            'imageurl'=> Yii::app()->request->baseUrl.'/images/update.png',
            'tag' => 'button',
            'tagHtmlOptions' => array(
            'onclick'=>'editline(this)',
                )
            ),
            array(
            'class' => 'EditableGridColumn',
            'header' => 'StentysRef',
            'name' => '[{gridNum}][{rowNum}]stentysproductref',
            'tag' => 'laabel',          
            'tagHtmlOptions' => array(
                'style'=>'background-color:#FFF;border-color:#FFF',
            'onkeyup'=>'stentysref(this)',
                'readonly'=>true
                )
            ), 

我的Jquery是,

(正如你可以看到removeAttr有效但attr没有)

       function editline(obj){
            $("#InvoiceLine_1_"+row+"_stentysproductref").attr("tag","textField");
            $("#InvoiceLine_1_"+row+"_stentysproductref").removeAttr("readonly");
}

2 个答案:

答案 0 :(得分:0)

使用jQuery 1.6中添加的.prop()removeProp(),因为.attr()方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。

function editline(obj){
    $("#InvoiceLine_1_"+row+"_stentysproductref").prop("tag","textField");
    $("#InvoiceLine_1_"+row+"_stentysproductref").removeProp("readonly");
}

API Doc for .prop()

答案 1 :(得分:0)

如果您在不指向AR模型的情况下使用EditableGrid小部件,则行ID看起来像

$('#_1_'+row+'stentysproductref').

我会考虑将来的更新。谢谢。