最近stakantin(https://stackoverflow.com/users/1875610/stakantin)帮助我提出了一个问题,即我使用此代码更改标签文本:
$标签= $这 - >添加( 'View_HtmlElement') - > setElement( 'H4') - >设置( '试验'); $ F = $这 - >添加( '形式'); $ f-> addField('Checkbox','click') - > js('click',$ label-> js() - > text('hallo world'));
我正在尝试这样做(我无法弄明白该怎么做):
我有一个标签“$ label = $ this-> add('View_HtmlElement') - > setElement('h4') - > set('100');” 我有一些带复选框的表格字段。每个复选框都有一个数字。
单击复选框以对该标签执行操作是否可行?
示例:
标签:100
field1 100复选框 field2 200复选框
如果我单击field1的复选框,则标签值为200(其原始值加上field1的100),依此类推......
我不知道我是否非常清楚购买感谢任何帮助。 亚历
答案 0 :(得分:1)
示例:
$f = $this->add('Form');
$l1 = $f->addField('Line','l1')->set(100);
$cb1 = $f->addField('Checkbox','cb1','100');
$l2 = $f->addField('Line','l2')->set(300);
$cb2 = $f->addField('Checkbox','cb2','300');
$cb1->js('change','
if (this.checked) {
$(this).parent().find("label")
.text(parseInt(100) + parseInt('.$l1->js()->val().'));
} else {
$(this).parent().find("label").text(100);
}
');
$cb2->js('change','
if (this.checked) {
$(this).parent().find("label")
.text(parseInt(300) + parseInt('.$l2->js()->val().'));
} else {
$(this).parent().find("label").text("300");
}
');
但是这不是添加javascript的好方法。基于我在.js文件中的示例创建js函数的方式要清晰得多。