我正在尝试使用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");
}
答案 0 :(得分:0)
使用jQuery 1.6中添加的.prop()
和removeProp()
,因为.attr()方法在检索某些属性时有时会考虑属性值,这可能会导致行为不一致。
function editline(obj){
$("#InvoiceLine_1_"+row+"_stentysproductref").prop("tag","textField");
$("#InvoiceLine_1_"+row+"_stentysproductref").removeProp("readonly");
}
答案 1 :(得分:0)
如果您在不指向AR模型的情况下使用EditableGrid小部件,则行ID看起来像
$('#_1_'+row+'stentysproductref').
我会考虑将来的更新。谢谢。